C# C语言中的Linq连接、计数、元组#
我有一个包含列的表:A、B和其他列(对于这个不重要) 比如说C# C语言中的Linq连接、计数、元组#,c#,linq,join,C#,Linq,Join,我有一个包含列的表:A、B和其他列(对于这个不重要) 比如说 A B C D Peter apple Thomas apple Thomas banana Lucy null 如何使用join获取元组列表{A,B}的计数 我的桌子是:{Peter,1},{Thomas,2},{Lucy,0} 谢谢您只需按A列上的记录分组,然后计算B不为空的位置 var result = (fro
A B C D
Peter apple
Thomas apple
Thomas banana
Lucy null
如何使用join获取元组列表{A,B}的计数
我的桌子是:{Peter,1},{Thomas,2},{Lucy,0}
谢谢您只需按A列上的记录分组,然后计算B不为空的位置
var result = (from t1 in cartItems
group t1 by t1.A into t2
select new
{
t2.Key,
count = t2.Count(p=> p.B != null)
}).ToList();
既然您提到了表,我假设它是
DataTable
您可以使用简单的Linq
语句来满足您的需要。查询返回List
和Tuple
包含两个字段Item1表示Name
和Item2表示Count
var results = dt.AsEnumerable()
.GroupBy(row=>row.Field<string>("A"))
.Select(s=> new Tuple<string, int>(s.Key, s.Count(c=>c!=null)))
.ToList();
var results=dt.AsEnumerable()
.GroupBy(row=>row.Field(“A”))
.Select(s=>newtuple(s.Key,s.Count(c=>c!=null)))
.ToList();
检查这个
table.GroupBy(t=>t.A)。选择(g=>new{Name=g.Key,Count=g.Count(gg=>gg!=null)})上面的code>^应该是.Count(gg=>gg.B!=null)
如果示例表中的是相同的,那么您就不能在t1上加入。一个相等的t2.B
因为它总是返回空的,因为A和B-具有不同值的不同列