2012-11-09 79 views
3

在C#列表中遺漏值的列表我有一個像如何添加使用LINQ

public class MyClass 
{ 
    public float Consumed { get; set;} 
    public int RequiredValue { get; set;} 
} 

一類這個類

List<MyClass> list 

的名單已經包含了「RequiredValue MyClass類型的一些項目「3,5,6,8和10以及」消費「屬性中的相應值。我發現在1範圍的遺漏值10使用下面的代碼:

var missingValues = Enumerable.Range(1, 10).Except(list.Select(p1 => p1.RequiredValue)); 

我想在「名單」添加項目使用LINQ使得新項目必須在「RequiredValue」缺失值和「消費」爲0

回答

4

這將產生你的對象,並把它們添加到收藏(你不需要初始化消耗屬性,因爲它已經將零作爲默認值):

list.AddRange(Enumerable.Range(1, 10) 
         .Except(list.Select(m => m.RequiredValue)) 
         .Select(i => new MyClass() { RequiredValue = i });