List<string> str = new List<string>() {
"Alpha", "Beta", "Alpha", "Alpha", "Gamma", "Beta", "XYZ" };
预期输出:
String | Indexes
----------------------------
Alpha | 0, 2, 3
Beta | 1, 5
Gamma
和 XYZ
不同,因此它们将被忽略。
我通过手动比较字符串来完成此操作。是否有可能以更简单的方式使用 LINQ 来做到这一点?
最佳答案
foreach (var grp in
str.Select((s, i) => new { s, i })
.ToLookup(pair => pair.s, pair => pair.i)
.Where(pair => pair.Count() > 1))
{
Console.WriteLine("{0}: {1}", grp.Key, string.Join(", ", grp));
}
关于c# - 如何选择非不同元素及其索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5830730/