按字段的前四个字母对列表进行分组并设置值

本文关键字:列表 设置 字段 四个 | 更新日期: 2023-09-27 18:19:51

我有一个自定义类型OrderStatus。

class OrderStatus
{
    string prodCode
    bool Issue
}

我有一个名为OrderList的OrderStatus列表,示例如下

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

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

prodCode    Issue
BTCR        true
BTCM        false

请注意,BTCR问题现在是真的,所以如果以BTCR开头的任何三个产品代码有问题,需要显示。

我该怎么做?这是林克的问题吗?

按字段的前四个字母对列表进行分组并设置值

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