从列表中获取新结果
本文关键字:结果 新结果 列表 获取 | 更新日期: 2023-09-27 18:26:57
我有一个详细的列表,我想要一个新的列表,其中包含一个属性的元素,没有像这样的重复。
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();
如果你也想要你原来的课程,你就必须有更多的想象力。
获取MoreLINQ并使用其DistinctBy
方法:
var newList = list.DistinctBy(x => x.Name).ToList();
或者使用聪明的GroupBy
破解:
var newList = list.GroupBy(x => x.Name).Select(x => x.First());
假设Class1定义为:
public class Class1
{
string Id {get;set;}
string Store {get;set;}
double Price {get;set;}
}
您可以将结果显示为:
var result = list.Select(x => x.Store).Distinct().ToList();
您想要使用Select()
来选择项目的特定属性:
list.Select(c => c.Company);
这将返回一个IEnumerable<string>
。
然后,您可能想要呼叫.Distinct()
。
newList = list.Select(x => x.Store).Distinct().ToList();