gpt4 book ai didi

c# - 如何在保持原始顺序的文本中出现第一个字符?

转载 作者:太空宇宙 更新时间:2023-11-03 18:44:54 27 4
gpt4 key购买 nike

我尝试让文本中出现的第一个字符保持其原始顺序。我尝试使用 LINQ,但我是这方面的新手,所以出了点问题,结果很糟糕。

例如我写:“languages”,所以结果将是 l-0, a-1, n-2, g-3, u-4, e-7, s-8(出现次数的平均值) .但我的代码给出:l-0、a-1、n-2、g-3、u-4、e-5、s-6

所以索引号无论如何都是 0,1,2,3,4,5。那是我的代码:

char[] result = text.ToLower()
.Where(char.IsLetter)
.GroupBy(x => x)
.Select(g => g.Key).ToArray();

for (int i = 0; i < result.Length; i++)
{
listView1.Items.Add(result[i].ToString());
listView1.Items[i].SubItems.Add(i.ToString());
}

最佳答案

使用 LINQ 我相信您正在尝试完成以下任务:

string input = "languages";
var query = input.Select((c, i) => new { Char = c, Index = i })
.Where(o => Char.IsLetter(o.Char))
.GroupBy(o => o.Char)
.Select(g => g.First());

foreach (var item in query)
{
Console.WriteLine("{0}: {1}", item.Char, item.Index);
}

您可以使用重载的Select 方法来获取每个字符的索引。捕获原始索引后,您可以自由地进一步操纵结果。现在您可以仅过滤字符,按字符对它们进行分组,最后,从每个组中取出 First() 项。

关于c# - 如何在保持原始顺序的文本中出现第一个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5316965/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com