-2

のようなディクショナリDictionary<string,Object>があります。ディクショナリをオブジェクトの配列に変換する方法はありますか?オブジェクトのクラスには2つのメンバーが含まれます.1つは文字列で、もう1つは値として保存されるオブジェクトです-辞書のペア.助けてください!!!..

4

2 に答える 2

1

Dictionary<TKey, TValue>IEnumerable<T>where Tis を実装しますKeyValuePair<TKey, TValue>。これを配列にフラット化するには、次のIEnuemrable<T>.ToArrayように呼び出すだけです。

Dictionary<string, int> dict = new Dictionary<string, int>() { { "Key1", 0 }, { "Key2", 1 } };
var kvArray = dict.ToArray();

kvArray次に、各要素のキーと値をdict同じオブジェクトの 2 つの個別のメンバーとして参照する配列オブジェクトになります。

あなたの質問は少しあいまいですが、おそらくさらに説明すると、より適切な解決策を見つけるのに役立つでしょう.


あなたのコメントについて、LINQはそれに適しています:

Dictionary<string, int[]> dict = new Dictionary<string, int[]>() { { "Key1", new int[] { 0, 1, 2 } }, { "Key2", new int[] { 4, 5, 6 } } };

var pairs = dict.SelectMany(pair => pair.Value
                .Select(v => 
                    new { 
                        Key = pair.Key, 
                        Value = v 
                    }
                 )
             );
于 2012-04-14T02:24:43.917 に答える
0

与えられたクラス:

class ClassA
{
    string CustomerId { get; set; }
    PatientRecords[] Records { get; set; }

    public ClassA(string name, PatientRecords[] records)
    {
        Name = name;
        Records = records;
    }
}

私はそれがCollectionOfPatientRecordsIEnumberableを実装していると仮定しています:

var dict = new Dictionary<string, CollectionOfPatientRecords> ( ... );

次に、適切な値を持つ ClassA の配列を取得します。

dict.Select(kv => new ClassA(kv.Key, kv.Value.ToArray())).ToArray();
于 2012-04-14T02:24:02.480 に答える