Linq 如何删除具有重复属性的元组中的条目?

Linq 如何删除具有重复属性的元组中的条目?,linq,c#-4.0,tuples,Linq,C# 4.0,Tuples,我有一个元组字典,由三个属性组成:姓名、地址、电话 例如: 约翰尼·塔尔,盖尔路1234号,555-402-9687 帕特里克·墨菲,泰勒路1234号,555-555-5555 帕特里克·墨菲,莫里森法院1234号,555-555-5555 如何删除三个属性中有两个重复的条目 迭代集合的尝试失败: for (int i = 0; i < fileList.Count - 1; i++) { for (int j = i + 1; j < fileList.Count; j

我有一个元组字典,由三个属性组成:姓名、地址、电话

例如:

  • 约翰尼·塔尔,盖尔路1234号,555-402-9687
  • 帕特里克·墨菲,泰勒路1234号,555-555-5555
  • 帕特里克·墨菲,莫里森法院1234号,555-555-5555
如何删除三个属性中有两个重复的条目

迭代集合的尝试失败:

for (int i = 0; i < fileList.Count - 1; i++)
{
    for (int j = i + 1; j < fileList.Count; j++)
    {
        // Test Results: There are supposed to be 362 duplicates. Outputting only 225 entries. A mix of duplicates and not duplicates.
        if (fileList[i].Item1.Equals(fileList[j].Item1, StringComparison.CurrentCultureIgnoreCase) && fileList[i].Item3.Equals(fileList[j].Item3, StringComparison.CurrentCultureIgnoreCase))
        {
            file.WriteLine(fileList[i].Item1 + "|" + fileList[i].Item2 + "|" + fileList[i].Item3);
        }
    }
}
for(int i=0;i

这将按名称/电话对元组进行分组,然后仅保留包含单个元组的组,然后选择该单个元组作为不同元组的输出列表。

请显示代码和迄今为止尝试的内容。您需要提供示例输入/所需输出。将“362个副本”文件缩减为几个条目,仅足以重现问题。此外,地址在这里也不重要,对吗(永远不要重复)?这在你的代码中似乎很清楚,但在问题中没有。最终,所需的输出将只是Johnny Tarr条目,但目前,所需的输出仅是两个Patrick Murphy条目。我会考虑削减测试套件。是的,地址并不重要。将在长时间休息后更新!当然是这样。您只需在代码中编写重复的条目,而不必理会其他条目。谢谢!这非常有效,从结果中删除了360个重复项,我用Excel过滤进行了验证。(之前的数字362不准确。)我也更了解Linq查询。我以前不知道这些字母是什么意思。
var distincts = fileList.GroupBy(t => t.Item1 + "," + t.Item3)
                        .Where(g => g.Count() == 1)
                        .Select(g => g.Single());

foreach (var item in distincts)
{
  Console.WriteLine(item);
}