Kev*_*sen 9 c# search list duplicates
我有一个List<string>包含重复的东西,我需要找到每个的索引.
除了循环遍历所有项目之外,最优雅,最有效的方法是什么.我在.NET 4.0上,所以LINQ是一个选项.我做了大量的搜索并连接找到任何东西.
样本数据:
var data = new List<string>{"fname", "lname", "home", "home", "company"}();
Run Code Online (Sandbox Code Playgroud)
我需要得到"家"的索引.
Guf*_*ffa 21
您可以从包含其索引的每个项目创建一个对象,然后对该值进行分组并过滤掉包含多个对象的组.现在您有一个分组列表,其中包含包含文本及其原始索引的对象:
var duplicates = data
.Select((t,i) => new { Index = i, Text = t })
.GroupBy(g => g.Text)
.Where(g => g.Count() > 1);
Run Code Online (Sandbox Code Playgroud)