我有一个像这样的字典Dictionary<string,Object>
,是否有任何方法可以将字典转换为对象数组,其中对象的类将包含两个成员 - 其中一个是字符串,另一个是存储为值的对象 -在字典中配对。请帮忙!!!..
问问题
2332 次
2 回答
1
Dictionary<TKey, TValue>
实现IEnumerable<T>
where T
is KeyValuePair<TKey, TValue>
。要将其展平为数组,只需IEnuemrable<T>.ToArray
这样调用:
Dictionary<string, int> dict = new Dictionary<string, int>() { { "Key1", 0 }, { "Key2", 1 } };
var kvArray = dict.ToArray();
kvArray
然后将是一个数组对象,将每个元素的键和值dict
作为同一对象的两个单独成员引用。
不过,您的问题有点模棱两可,也许进一步的解释会帮助我们找到更合适的解决方案。
重新发表您的评论,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;
}
}
我假设CollectionOfPatientRecords
实现 IEnumberable:
var dict = new Dictionary<string, CollectionOfPatientRecords> ( ... );
然后让你的 ClassA 数组具有正确的值:
dict.Select(kv => new ClassA(kv.Key, kv.Value.ToArray())).ToArray();
于 2012-04-14T02:24:02.480 回答