2
我需要一些帮助将条件添加到linq查询中。LINQ根据返回的结果进行分组并根据返回的结果创建公式
拿这个小例子
static void Main(string[] args)
{
List<ItemEntry> items = new List<ItemEntry>();
items.Add(new ItemEntry(1,1,5,1));
items.Add(new ItemEntry(2, 1, 5, 1));
items.Add(new ItemEntry(3, 1, 5, 1));
items.Add(new ItemEntry(4, 1, 10, 3));
items.Add(new ItemEntry(5, 2, 5, 1));
items.Add(new ItemEntry(6, 2, 5, 1));
items.Add(new ItemEntry(7, 2, 5, 1));
items.Add(new ItemEntry(8, 2, 5, 1));
items.Add(new ItemEntry(9, 2, 5, 2));
items.Add(new ItemEntry(10, 2, 5, 2));
var results = from data in items
group data by data.ItemTypeID
into grouped
select new { ItemID = grouped.Key, ItemPrice = grouped.Sum(data => data.ItemPrice) };
foreach (var item in results)
{
Console.WriteLine(item.ItemID + " " + item.ItemPrice);
}
Console.ReadLine();
}
}
public class ItemEntry
{
public int ItemID { get; set; }
public int ItemTypeID { get; set; }
public double ItemPrice { get; set; }
public int ProcessedType { get; set; }
public ItemEntry(int itemID, int itemTypeID,double itemPrice, int processedType)
{
ItemID = itemID;
ItemTypeID = itemTypeID;
ItemPrice = itemPrice;
ProcessedType = processedType;
}
}
我分组然后ItemTypeID基于这是很好的组作成的总和。我现在需要添加额外的2个条件。 我想保持分组相同,但我只想在ProcessedType == 1的情况下做同样的事情,如果它的类型为2或3,那么我想总计它们,然后减去它分组总数。
例如我将使用ItemTypeID 1 如果我总计所有ProcessedType 1我得到15,如果我总ProcessedType3我有10所以我想返回5.
我不知道如何将条件添加到我的代码。
任何帮助将是伟大的!
TIA
H柯克感谢您的回复。这是一个梦想:) – 2010-03-22 17:19:07
对不起还有一个问题。而不是使用通用列表来获取如果我想使用LINQ-SQL的值。假设所有的字段都有相同的名称,但是我没有在数据库中的TotalModifier字段。 对不起,我对linq很新颖 – 2010-03-22 19:50:51