請原諒我的混淆標題。但我不能想出更簡單的東西。LINQ除/僅基於幾列,不添加重複
我已經下課了。
public class Foo
{
public FooId int { get; set; }
public FooField string { get; set; }
//some more fields here....
//....
//....
public DateTime CreatedDate { get; set; }
}
我需要遍歷的東西,並添加了一系列Foo
到List<Foo>
,但它不應該被重複的基礎上,FooId
和FooField
組合。
所以我想,如下
List<Foo> foos = new List<Foo>();
foreach (Bar item in blah.Bars)
{
//Some code here to get the foos from the item
List<Foo> processedFoos = item.GetFoos();
//The problem is with below line
foos.AddRange(processedFoos.Except(foos));
}
的Except
增加了所有記錄,並複製了FooId
和FooField
組合CreatedDate
將是所有獨特記錄。
但我需要忽略CreatedDate
,只是添加那些不違反獨特組合的記錄。
我能在這裏做什麼? Except
? Distinct
?任何其他的選擇?
最重要的是,如何?
實施'的IEqualityComparer'和使用的適當的過載的'除()'的https:// MSDN ()。Select()().microsoft.com/zh-cn/usr/vstudio/bb336390(v = vs.100).aspx?cs-save-lang = 1&cs-lang = csharp#code-snippet-1 –
Ric