使用LINQ选择不同的值和转换

时间:2016-04-07 15:25:49

标签: c# linq

我有一个简单的选择,LINQ如此结构化:

var p = info.SpRicezioneSpedizioniLights
  .Where(x => x.SPEDIZIONE_STATO_GENERAZIONE == "I")
  .GroupBy(x => x.PROGRESSIVO);

foreach (var item in p)
{
        // item. Do something
}

我必须使用不同的PROGRESSIVO选择SPRicezioneSpedizioniLights中的所有行并详细说明每一行。

当我尝试详细说明项目时,我有这个错误:

  

' System.Linq.IGrouping'不包含' ID'的定义没有扩展方法' ID'接受类型' System.Linq.IGrouping'的第一个参数。可以找到(你错过了使用指令或程序集引用吗?)

做我想做的最好的方法是什么?

谢谢

2 个答案:

答案 0 :(得分:1)

  

不使用特定的PROGRESSIVO,而是使用第一行的所有行   不同的PROGRESSIVO

问题是GroupBy的结果是System.Linq.IGrouping对象,它包含带有一组元素的键。 因此,如果您需要组中的第一行,则可以使用FirstOrDefault()方法。

var p = info.SpRicezioneSpedizioniLights
          .Where(x => x.SPEDIZIONE_STATO_GENERAZIONE == "I")
          .GroupBy(x => x.PROGRESSIVO)
          .Select(x=>x.FirstOrDefault());

foreach(var item in p)
{
   if (item != null)
       item.SPEDIZIONE_STATO_GENERAZIONE = "G";
}  

答案 1 :(得分:0)

您需要添加另一个ServerSocket server = new ... Socket socket = server.accept() ... 循环来获取您的群组的详细信息。

foreach