C# 使用SortedList进行Linq查询<;int,list<;int>&燃气轮机;
我目前正在使用Linq从数据表中检索不同值的列表。然后,我在列表中循环,并再次调用linq查询来检索每个查询的值列表 第一个列表中的值C# 使用SortedList进行Linq查询<;int,list<;int>&燃气轮机;,c#,.net,linq,c#-4.0,linq-to-sql,C#,.net,Linq,C# 4.0,Linq To Sql,我目前正在使用Linq从数据表中检索不同值的列表。然后,我在列表中循环,并再次调用linq查询来检索每个查询的值列表 第一个列表中的值 _keyList = new SortedList<int, List<int>>(); var AUGroupList = ProcessSummaryData.AsEnumerable() .Select(x => x.Field<int>("AUGroupID"))
_keyList = new SortedList<int, List<int>>();
var AUGroupList = ProcessSummaryData.AsEnumerable()
.Select(x => x.Field<int>("AUGroupID"))
.Distinct()
.ToList<int>();
foreach (var au in AUGroupList)
{
var AUList = ProcessSummaryData.AsEnumerable()
.Where(x => x.Field<int>("AUGroupID") == au)
.Select(x => x.Field<int>("ActivityUnitID"))
.ToList<int>();
_keyList.Add(au, AUList);
}
\u keyList=new SortedList();
var AUGroupList=ProcessSummaryData.AsEnumerable()
.Select(x=>x.Field(“AUGroupID”))
.Distinct()
.ToList();
foreach(AUGroupList中的变量au)
{
var AUList=ProcessSummaryData.AsEnumerable()
其中(x=>x.Field(“AUGroupID”)==au)
.选择(x=>x.Field(“ActivityUnitID”))
.ToList();
_添加(au,AUList);
}
然后将该值与相应的第二个列表一起添加到排序列表中。
如何将上述两个查询合并到一个Linq查询中,以便不必单独调用它们?您尝试过这个吗
var _keyList = new SortedList<int, List<int>>();
var AUGroupList = ProcessSummaryData.AsEnumerable()
.Select(x => x.Field<int>("AUGroupID"))
.Distinct()
.Where(x => x.Field<int>("AUGroupID") == au)
.Select(x => x.Field<int>("ActivityUnitID"))
.ToList<int>();
_keyList.Add(au, AUList);
}
var\u keyList=new SortedList();
var AUGroupList=ProcessSummaryData.AsEnumerable()
.Select(x=>x.Field(“AUGroupID”))
.Distinct()
其中(x=>x.Field(“AUGroupID”)==au)
.选择(x=>x.Field(“ActivityUnitID”))
.ToList();
_添加(au,AUList);
}
您的提供商应该解决这个问题,如果没有的话,还有其他一些方法。您尝试过这个吗
var _keyList = new SortedList<int, List<int>>();
var AUGroupList = ProcessSummaryData.AsEnumerable()
.Select(x => x.Field<int>("AUGroupID"))
.Distinct()
.Where(x => x.Field<int>("AUGroupID") == au)
.Select(x => x.Field<int>("ActivityUnitID"))
.ToList<int>();
_keyList.Add(au, AUList);
}
var\u keyList=new SortedList();
var AUGroupList=ProcessSummaryData.AsEnumerable()
.Select(x=>x.Field(“AUGroupID”))
.Distinct()
其中(x=>x.Field(“AUGroupID”)==au)
.选择(x=>x.Field(“ActivityUnitID”))
.ToList();
_添加(au,AUList);
}
您的提供商应该解决这个问题,如果没有,还有其他一些方法。您应该能够做到以下几点:
var groupQuery = from d in ProcessSummary.AsEnumerable()
group d by new { Key = d.Field<int>("AUGroupID") } into g
select new { GroupID = g.Key, Values = g.Distinct().ToList() };
var groupQuery=来自ProcessSummary.AsEnumerable()中的d
按新的{Key=d.Field(“AUGroupID”)}将d分组到g中
选择新{GroupID=g.Key,Values=g.Distinct().ToList()};
然后,您可以循环通过
groupQuery
并填充排序列表。键
属性将包含组id,值
属性将有一个不同的值列表。您应该能够执行以下操作:
var groupQuery = from d in ProcessSummary.AsEnumerable()
group d by new { Key = d.Field<int>("AUGroupID") } into g
select new { GroupID = g.Key, Values = g.Distinct().ToList() };
var groupQuery=来自ProcessSummary.AsEnumerable()中的d
按新的{Key=d.Field(“AUGroupID”)}将d分组到g中
选择新{GroupID=g.Key,Values=g.Distinct().ToList()};
然后,您可以循环通过
groupQuery
并填充排序列表。键
属性将包含组id,值
属性将有一个不同的值列表。非常感谢!!很有魅力。非常感谢!!工作起来很有魅力。