如何在Linq中从逗号分隔字符串中选择令牌和索引

本文关键字:选择 字符串 令牌 索引 分隔 Linq | 更新日期: 2023-09-27 18:09:34

给定一个逗号分隔的字符串"a,b,c",我想分割字符串并选择令牌及其各自的索引到一个列表中。

换句话说,我希望"a,b,c".Split(',')返回一个列表:

a, 1
b, 2
c, 3

我自己尝试了解决方案,但这是我最接近的。当然,我只在最后一行使用a.Index()来指示我要做的事情。

public class var
{
    public string Token;
    public int Index;
}
List<var> varList = "a,b,c"
                       .Split(',')
                       .Select(a => new var { Token = a, Index = a.Index() };

如何在Linq中从逗号分隔字符串中选择令牌和索引

您可以使用Select的另一个重载,.Select(Func<string, int, TResult>)给出值的索引。

List<Var> varList = "a,b,c".Split(',')
    .Select((a, i) => new Var { Token = a, Index = i + 1 })
    .ToList();

你可以使用Select的重载来提供索引:

var list = "a,b,c".Split(',').Select((a,i) => new { Token = a, Index = i+1 }).ToList();
我建议不要使用var作为类名,因为它会与c# var关键字冲突。