SELECT LINQ 中的 DISTINCT LEFT([string],2)

SELECT DISTINCT LEFT([string],2) in LINQ

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

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 上的旧应用。

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();