给定逗号分隔的字符串“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() };

===============>>#1 票数:2 已采纳

您可以使用Select.Select(Func<string, int, TResult>)的另一个重载,它为我们提供值的索引。

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

===============>>#2 票数:2

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

var list = "a,b,c".Split(',').Select((a,i) => new { Token = a, Index = i+1 }).ToList();

另外一点 - 我建议不要将var用作类名,因为它会与C# var关键字冲突。

  ask by Kuyenda translate from so

未解决问题?本站智能推荐: