我有一份详细 list ,我想要一个新 list ,其中包含一个属性的元素,没有像这样的重复项。
List<Class1> list = List<Class1>();
list.Add(new Class1("1", "Walmart", 13.54));
list.Add(new Class1("2", "Target", 12.54));
list.Add(new Class1("3", "Walmart", 14.54));
list.Add(new Class1("4", "BestBuy", 16.54));
list.Add(new Class1("5", "Walmart", 19.54));
list.Add(new Class1("6", "Amazon", 12.33));
我的新列表
List<Stores> newList = list.Select / FindAll / Group ?
我想要这个收藏
newList = "Walmart", "Target", "BestBuy", "Amazon"
最佳答案
您需要 Distinct
和 Select
。
var newList = list.Select(x => x.Name).Distinct().ToList();
如果您还想要原来的类(class),则必须更花哨一些。
要么得到MoreLINQ并使用其 DistinctBy
方法:
var newList = list.DistinctBy(x => x.Name).ToList();
或者使用聪明的 GroupBy
hack:
var newList = list.GroupBy(x => x.Name).Select(x => x.First());
关于c# - 从列表中获取新结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18112778/