Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用LINQ搜索列表中的重复条目_C#_Linq_List - Fatal编程技术网

C# 使用LINQ搜索列表中的重复条目

C# 使用LINQ搜索列表中的重复条目,c#,linq,list,C#,Linq,List,我有一个包含文本框控件的列表。基本上所有这些都分组在一个groupbox控件中 List<TextBox> listTextBox; 如果计数大于1,则我确定文本框中存在重复条目 还有其他更好的办法吗 干杯 VATSAG您可以使用GroupBy,然后使用Count>1筛选组,并为所有此类文本选择键。我没有遵守守则,但这应该足够接近了 var duplicateTexts= listTextBox.GroupBy(tb => tb.Text)

我有一个包含文本框控件的列表。基本上所有这些都分组在一个groupbox控件中

List<TextBox> listTextBox;
如果计数大于1,则我确定文本框中存在重复条目

还有其他更好的办法吗

干杯 VATSAG

您可以使用GroupBy,然后使用Count>1筛选组,并为所有此类文本选择键。我没有遵守守则,但这应该足够接近了

var duplicateTexts=
        listTextBox.GroupBy(tb => tb.Text)
            .Where(group => group.Count() > 1)
            .Select(group => group.Key);

大概像这样的东西可能有用

var duplicates = listTextBox
        .GroupBy(i => i.Text)
        .Where(g => g.Count() > 1)
        .Select(g => new {Count = g.Count(), 
                          Name = g.Key});
    foreach (var d in duplicates)
    {
        var keyName = d.Key;

        var count = d.Count;
    }

是否要登记所有重复文本?登记或如果计数超过1,则可以提示重复文本。此谓词将为我提供重复条目的密钥。但有没有办法只计算一下?简单地计算一下。重复文本的数量?我已经编辑了我的答案。在遍历时,可以同时获取密钥和计数。
var duplicates = listTextBox
        .GroupBy(i => i.Text)
        .Where(g => g.Count() > 1)
        .Select(g => new {Count = g.Count(), 
                          Name = g.Key});
    foreach (var d in duplicates)
    {
        var keyName = d.Key;

        var count = d.Count;
    }