C# 检查表<&燃气轮机;项目,如果其中包含相同的项目,则复制这些项目并将其从列表中删除<&燃气轮机;

C# 检查表<&燃气轮机;项目,如果其中包含相同的项目,则复制这些项目并将其从列表中删除<&燃气轮机;,c#,C#,要检查列表是否包含相同的项吗 var listme = new List<string>(); listme.Add("list1"); listme.Add("list1"); var listme=new List(); 列表名称。添加(“列表1”); 列表名称。添加(“列表1”); 并且要计算相同项目的数量并复制它,然后将其从列表中删除。尝试使用哈希表而不是列表 Hashtable hashtable = new Hashtable(); hash

要检查列表是否包含相同的项吗

var listme = new List<string>();
listme.Add("list1"); 
listme.Add("list1");
var listme=new List();
列表名称。添加(“列表1”);
列表名称。添加(“列表1”);

并且要计算相同项目的数量并复制它,然后将其从列表中删除。

尝试使用
哈希表
而不是
列表

Hashtable hashtable = new Hashtable();
            hashtable[1] = "One";
            hashtable[2] = "Two";
            hashtable[13] = "Thirteen"

您可以使用linq,请参见以下内容:

public static void Main()
{
    var listme = new List<string> {"A", "A", "B", "C", "C"};

    // count
    var countDict = listme.GroupBy(i => i)
        .ToDictionary(i => i.Key, i => i.Count());

    foreach (var kv in countDict)
    {
        Console.WriteLine($"{kv.Key}: {kv.Value}");
    }

    // remove
    listme.RemoveAll(s => s == "A");
    foreach (string s in listme)
    {
        Console.WriteLine(s);
    }

    Console.ReadLine();
}
publicstaticvoidmain()
{
var listme=新列表{“A”、“A”、“B”、“C”、“C”};
//计数
var countDict=listme.GroupBy(i=>i)
.ToDictionary(i=>i.Key,i=>i.Count());
foreach(计数中的var kv)
{
Console.WriteLine($“{kv.Key}:{kv.Value}”);
}
//除去
RemoveAll(s=>s==“A”);
foreach(listme中的字符串s)
{
控制台。写入线(s);
}
Console.ReadLine();
}

您可以使用
GroupBy
ToDictionary
在单个LINQ语句中执行此操作:

var dupCounts = listme
    .GroupBy(s => s)
    .Where(g => g.Count() > 1) // Keep only groups with duplicates
    .ToDictionary(g => g.Key, g => g.Count());
这将生成一个
字典
,其中列表中的每个项目都映射到原始列表中相应的计数。现在,您可以从原始列表中删除所有重复项:

listme.RemoveAll(dupCounts.Keys);

为什么要列出<代码>哈希集!这其中的哪一部分给你带来了问题?到目前为止,您尝试了什么?您应该查看一个名为LINQ的东西,并在发布一个不完整的问题之前做更多的研究。为什么不使用字典或哈希表?最好使用通用版本的
字典