首页 > 解决方案 > 在 LINQ 中选择 DISTINCT LEFT([string],2)

问题描述

我需要检索字符串左侧两个字符的不同列表。

var result = work
            .Select(w =>  w.BillCode)
            .Distinct()
            .ToList();

我已经使用这个 linq 语句获得了一个不同的列表,但我需要来自 BillCode 的 2 位前缀的不同列表。

而不是 AB1、AB2、AB3、CD1、CD2、CD3……我只需要 AB、CD。

这是一个遗留在 .Net Framework 4.7.2 上的应用程序。

标签: c#linq.net-framework-version

解决方案


var result = work
    .Select(w => w.BillCode.Substring(0,2))
    .Distinct()
    .ToList();

或者,如果您的BillCode字符数少于 2:

var result = work
    .Select(w => w.BillCode.Length>2 ? w.BillCode.Substring(0,2) : w.BillCode)
    .Distinct()
    .ToList();

推荐阅读