求助,,怎么用linq实现
net吧
全部回复
仅看楼主
level 2
江岸w 楼主
求助,,怎么用linq实现
2016年04月20日 11点04分 1
level 1
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Linq;
using System.Collections.Generic;
namespace UnitTestProject1
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
var list = new System.Collections.Generic.List<A>();
list.Add(new A
{
num = 10,
name = "张三"
});
list.Add(new A
{
num = 10,
name = "张三"
});
list.Add(new A
{
num = 20,
name = "张三"
});
list.Add(new A
{
num = 10,
name = "李四"
});
list.Add(new A
{
num = 20,
name = "李四"
});
var resault = from l in list
group l by l.name into g
select new
{
num = g.DistinctBy(e => new { e.num, e.name }).Count()
};
}
}
public static class LinqPlus
{
public static IEnumerable<TSource> DistinctBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector)
{
HashSet<TKey> seenKeys = new HashSet<TKey>();
foreach (TSource element in source)
{
if (seenKeys.Add(keySelector(element)))
{
yield return element;
}
}
}
}
public class A
{
public int num { get; set; }
public string name { get; set; }
}
}
2016年05月05日 02点05分 2
1