リストをベースとして使用するカスタム辞書を作成しようとしています(XMLの逆シリアル化で使用されます)。キーを文字列に置くことができないので、キーを作成する方法を理解できません。C#リストを基にした辞書
辞書はTestObjectのKeyプロパティをKeyとして持ち、ValueとしてTestObject自体を持つでしょう。簡単なforeachループは十分であろうが、これは、LINQのToDictionary
メソッドを使用しています
public class Methods
{
public void TestMethod(List<TestObject> list)
{
Dictionary<string, TestObject> data = list.ToDictionary(x => x.Key);
}
}
:あなたの最後のコメントを考えると
public class TestObject
{
public string Key { get; set; }
public string Property1 { get; set; }
public int Property2 { get; set; }
}
public class CustomDictionary<string, TestObject> : List<TestObject>
{
}
public class Methods
{
public void TestMethod(List<TestObject> list)
{
var testObject = new TestObject()
{
Key = "TEST",
Property1 = "ABC",
Property2 = 123,
};
CustomDictionary<string, TestObject> dictionary = new CustomDictionary<string, TestObject>(list);
var test;
dictionary.TryGetValue(testObject.Key, out test);
}
}
これはコンパイルされず、このためにカスタムの「辞書」を作成する必要はありません。 'Dictionary 'を使用してください –
generic辞書でも可能です – Sunil
xmlのシリアル化の結果はこれらのTestObjectのリストであり、そのTestObjectのプロパティをキーとして辞書を持っていたいと思います。 – Mirzoda