【问题标题】:C# LINQ or for loop How to get a data source from a db?C# LINQ 或 for 循环如何从数据库中获取数据源?
【发布时间】:2020-03-16 17:42:22
【问题描述】:

我正在尝试获取列中相同值的每个项目的计数。例如,我有一个包含人员信息的表,我希望它通过名字列并让我计算其中有多少 Joe's 和 Mary's,而无需指定特定名称。

【问题讨论】:

标签: c# linq for-loop


【解决方案1】:

您可以按列对数据进行分组

users.GroupBy(x => x.FirstName).Select(x => new
{
    FirstName = x.Key,
    Count = x.Count()
});

【讨论】:

    【解决方案2】:

    尝试使用GroupBy:

    public class People
    {
        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
    
        static void Main(string[] args)
        {
            var peoples = new List<People>
            {
                new People { Id = 1, FirstName = "Bob", LastName = "Abc" },
                new People { Id = 2, FirstName = "Joe's", LastName = "Def" },
                new People { Id = 3, FirstName = "Mary's", LastName = "Ghi" },
                new People { Id = 4, FirstName = "Alice", LastName = "Jikl" },
                new People { Id = 5, FirstName = "Bob", LastName = "Mno" },
            };
    
            var groupedByFirstName = peoples
                .GroupBy(x => x.FirstName)
                .Select(x => new
                {
                    FirstName = x.Key,
                    Count = x.Count()
                });
    
            foreach (var people in groupedByFirstName)
            {
                Console.WriteLine($"FirstName: {people.FirstName}. Count: {people.Count}");
            }
    
            Console.ReadKey();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-18
      相关资源
      最近更新 更多