我有一个包含多个表联接的数据库中行的Dictionary列表。我尝试了各种LINQ方法,但总是遇到以这种数据结构无法进行某些操作的障碍。我已经尽力简化代码示例,而不会误传核心问题,那么...
我该如何从List中提取Dictionary中的显式KeyValuePairs并将其放入Model中?
我需要一个可扩展的解决方案,其中Model可以对subData执行相同的操作。
我该如何从List中提取Dictionary中的显式KeyValuePairs并将其放入Model中?
我需要一个可扩展的解决方案,其中Model可以对subData执行相同的操作。
public class Program
{
public static void Main(string[] args)
{
List<Dictionary<string, string>> data = GetData();
data.Add(new Dictionary<string, string>() { ["modelData"] = "Bob", ["subModelData"] = "Frank" });
data.Add(new Dictionary<string, string>() { ["modelData"] = "Nancy", ["subModelData"] = "Boy" });
List<Model> models = new List<Model>();
//Fails in this linq statement. Anonymous types don't allow key accessors
foreach (Dictionary<string, string> distinctModel in data.GroupBy(x => new { x["dataKey"] }))
{
List<Dictionary<string, string>> newModelData = data.Where(d => d["data1Key"] == distinctModel["dataKey"]).ToList();
Model newModel = new Model(newModelData);
models.Add(newModel);
}
}
}
public class Model
{
public string modelData;
public List<Dictionary<string, string>> subData;
public Model(List<Dictionary<string, string>> data) {
modelData = data[0]["dataKey"];
data.Remove("dataKey");
subData = data;
}
}
.GroupBy(x => new { x.GetValue("dataKey") })
改为这个吗? - Thomas Ayoub