41

このコードは例としてのみ使用しています。次の Person クラスがあるとします。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace dictionaryDisplay
{
class Person
{
    public string FirstName { get; private set;}
    public string LastName { get; private set; }

    public Person(string firstName, string lastName)
    {
        this.FirstName = firstName;
        this.LastName = lastName;

    }

    public override string ToString()
    {
        return this.FirstName + " " + this.LastName;
    }
}

}

メインプログラム

static void Main(string[] args)
    {
        ConcurrentDictionary<int, Person> personColl = new ConcurrentDictionary<int,   Person>();

        personColl.TryAdd(0, new Person("Dave","Howells"));
        personColl.TryAdd(1, new Person("Jastinder","Toor"));

        Person outPerson = null;
        personColl.TryRemove(0, out outPerson);


        //Is this safe to do?
        foreach (var display in personColl)
        {
            Console.WriteLine(display.Value);
        }





    }
  1. これは並行辞書を反復処理する安全な方法ですか? そうでない場合、それを行うための安全な方法は何ですか?

  2. 辞書から Person オブジェクトを削除したいとしましょう。tryRemove メソッドを使用していますが、outPerson オブジェクトはどうすればよいですか? ディクショナリから削除された Person が格納されます。outPerson オブジェクトを完全にクリアするにはどうすればよいですか?

4

2 に答える 2