【发布时间】:2017-11-23 15:21:15
【问题描述】:
我有一个包含字段的项目集合类。
class Item
{
string s1;
string s2;
string s3;
string d1;
string d2;
}
MyCollection 看起来像这样:
public class MyCollection : ICollection<Item>, IEnumerable
{}
我需要通过“s1”、“s2”、“s3”来区分该列表,但作为回报,我需要获取包含所有这些字段(s1、s2、s3、d1、d2)的列表,而没有重复的项目。所以换句话说,作为回报,我需要一个MyCollection<Item>,而不是List<anonymousType>
现在我有类似的东西
var list = source.Select(k => new { k.s1, k.s2, k.s2 }).Distinct().ToList();
但它返回一个只有 s1,s2,s3 字段的列表。
有什么办法吗?
【问题讨论】:
-
当您对给定的
s1, s2, s3有多个值时,您想要哪个d1和d2?您可以从GroupBy开始而不是独特的,然后您可以Select(x => new Item{s1=x.s1, ...},有几个选项,但您需要知道为d1, d2选择什么