0
を行う値を求めたがConcurrentDictionaryから選択します。私は作成して埋めConcurrentDictionaryと辞書をして、コードを試してみました上記のエンティティを使用して私はConcurrentDictionaryと辞書でいくつかのテストをしていた今日ではない
class MyTest
{
public int Row { get; private set; }
public int Col { get; private set; }
public string Value { get; private set; }
public MyTest(int row, int col, string value)
{
this.Col = col;
this.Row = row;
this.Value = value;
}
public override bool Equals(object obj)
{
MyTest other = obj as MyTest;
return base.Equals(other);
}
public override int GetHashCode()
{
return (Col.GetHashCode()^Row.GetHashCode()^Value.GetHashCode());
}
}
次のようになります。
aConcurrentDictionary<MyTest, List<MyTest>> _test = new ConcurrentDictionary<MyTest, List<MyTest>>();
Dictionary<MyTest, List<MyTest>> _test2 = new Dictionary<MyTest, List<MyTest>>();
MyTest dunno = _test.Values.AsParallel().Select(x => x.Find(a => a.Col == 1 && a.Row == 1)).FirstOrDefault();
MyTest dunno2 = _test2.Values.AsParallel().Select(x => x.Find(a => a.Col == 1 && a.Row == 1)).FirstOrDefault();
最初の値は値を返しますが、2番目の値は返しません。何が間違っていますか?
この
は、値を追加するために使用するコードです: _test.AddOrUpdate(cell10,
new List<MyTest>
{
new MyTest(1, 1, "ovpSOMEVALUEValue"),
new MyTest(1, 2, "ocpSOMEVALUEValue")
},
(key, value) => value = new List<MyTest>());
_test2.Add(cell10,
new List<MyTest>
{
new MyTest(1, 1, "ovpSOMEVALUEValue"),
new MyTest(1, 2, "ocpSOMEVALUEValue")
}
);
辞書に値を追加するために使用されるコードを投稿してください。 –
_test.AddOrUpdate(cell10、new List)新しいMyTest(1、1、 "ovpSOMEVALUEValue")、新しいMyTest(1,2、 "ocpSOMEVALUEValue")、(key、value)=>値=新しいリスト() );正規辞書の場合:_test2.Add(cell10、new List {new MyTest(1,1、 "ovpSOMEVALUEValue")、新しいMyTest(1,2、 "ocpSOMEVALUEValue")}); –