gpt4 book ai didi

c# - 如何删除 lambda 表达式的 Where 条件?

转载 作者:太空宇宙 更新时间:2023-11-03 21:52:17 27 4
gpt4 key购买 nike

我正在尝试编写一个程序,向用户显示重复记录以更正数据或删除重复行。它有效,但我必须在我的 lambda 表达式中放置一个 Where 子句才能使其正常工作。我怎样才能删除这个无用的子句?

第 22 行的 Where(d => d.Id > 0)

public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}

public class Program
{
static void Main(string[] args)
{
List<Person> dt = new List<Person>();
dt.Add(new Person() { Id = 1, Name = "MICHAEL JACKSON", Age = 50 });
dt.Add(new Person() { Id = 2, Name = "MICHAEL JACKSON", Age = 51 });
dt.Add(new Person() { Id = 3, Name = "JOHN LENNON", Age = 40 });
dt.Add(new Person() { Id = 4, Name = "JOHN LENNON", Age = 41 });
dt.Add(new Person() { Id = 5, Name = "ELVIS PRESLEY", Age = 42 });

var duplicates = dt.AsEnumerable().GroupBy(r => r.Name).Where(gr => gr.Count() > 1).ToList();
if (duplicates.Any())
{
var query = duplicates.SelectMany(c => c.Where(d => d.Id > 0)).AsQueryable();

foreach (var item in query)
Console.WriteLine(String.Format("{0} - {1}", item.Name, item.Age));
}
else
Console.WriteLine("No records duplicates.");

Console.ReadLine();
}
}

这只是示例代码,我的代码做了很多其他检查,但如果有人知道如何删除这个子句,那将对我很有帮助。我认为这可能会影响性能。

最佳答案

这在这里也有效:

    List<Person> dt = new List<Person>();
dt.Add(new Person() { Id = 1, Name = "MICHAEL JACKSON", Age = 50 });
dt.Add(new Person() { Id = 2, Name = "MICHAEL JACKSON", Age = 51 });
dt.Add(new Person() { Id = 3, Name = "JOHN LENNON", Age = 40 });
dt.Add(new Person() { Id = 4, Name = "JOHN LENNON", Age = 41 });
dt.Add(new Person() { Id = 5, Name = "ELVIS PRESLEY", Age = 42 });

var duplicates = dt.GroupBy(r => r.Name).Where(gr => gr.Count() > 1).ToList();
if (duplicates.Any())
{

foreach (var item in duplicates)
Console.WriteLine(String.Format("{0} - {1}", item.Key, string.Join(",", item.Select(p => p.Age))));
}
else
Console.WriteLine("No records duplicates.");

Console.ReadLine();

关于c# - 如何删除 lambda 表达式的 Where 条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13865022/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com