按字段的前四个字母组列表并设置值

时间:2015-10-29 16:39:43

标签: c# linq

我有自定义类型OrderStatus。

class OrderStatus
{
    string prodCode
    bool Issue
}

我有OrderStatus列表,名为OrderList,下面的例子是

prodCode    issue
BTCR        false
BTCRRED     false
BTCROUT     true
BTCM        false
BTCMOUT     false

我想将prodCode分组在前四个字母上,所以上面的列表只有BTCR& BTCM在里面。如下所示

prodCode    Issue
BTCR        true
BTCM        false

请注意BTCR问题现在是正确的,因此如果以BTCR开头的任何三个产品代码都有问题,则需要显示。

我该如何解决这个问题?认为这是一个linq问题?

1 个答案:

答案 0 :(得分:3)

var result=list.GroupBy(o=>o.prodCode.Substring(0,4))
  .Select(o=>new OrderStatus {prodCode=o.Key,Issue=o.Any(o2=>o2.Issue)});

以下是测试:http://ideone.com/20Olpz