【问题标题】:Highest data table values from items in list列表中项目的最高数据表值
【发布时间】:2021-04-02 09:54:21
【问题描述】:

我有一个如下所示的数据表:

type | Value
----------
  a  |  5
  b  |  6
  c  |  10
  d  |  23
  e  |  8

我有一个存储某些类型的列表,如下所示:

var list = new List<string>() {a, c, e}

我不太擅长 LINQ,但我正在寻找一个返回列表中类型的最大值的语句。谁能帮我解决这个问题?

谢谢!

【问题讨论】:

    标签: c# list linq datatable


    【解决方案1】:

    试试这个:

    int maxValue = list.Max(m => 
        dt.AsEnumerable()
          .First(r => r.Field<string>("type") == m)
          .Field<int>("value")
    );
    

    【讨论】:

    • 非常感谢!
    【解决方案2】:

    尝试以下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data;
    
    namespace ConsoleApplication186
    {
        class Program
        {
            static void Main(string[] args)
            {
                DataTable dt = new DataTable();
                dt.Columns.Add("type", typeof(string));
                dt.Columns.Add("Value", typeof(int));
    
                dt.Rows.Add(new object[] { "a", 0 });
                dt.Rows.Add(new object[] { "b", 0 });
                dt.Rows.Add(new object[] { "c", 0 });
                dt.Rows.Add(new object[] { "d", 0 });
                dt.Rows.Add(new object[] { "e", 0 });
    
                dt.Rows.Add(new object[] {"a",5});
                dt.Rows.Add(new object[] {"b",6});
                dt.Rows.Add(new object[] {"c",10});
                dt.Rows.Add(new object[] {"d",23});
                dt.Rows.Add(new object[] {"e",8});
    
                List<DataRow> max = dt.AsEnumerable()
                    .OrderByDescending(x => x.Field<int>("Value"))
                    .GroupBy(x => x.Field<string>("type"))
                    .Select(x => x.FirstOrDefault())
                    .ToList();
            }
        }
    }
    

    【讨论】:

      【解决方案3】:

      你可以使用类似的东西:

      int maxValue = list.Max(m => 
          dt.AsEnumerable()
            .First(r => r.Field<string>("type") == m)
            .Field<int>("value")
      );
      

      【讨论】:

        猜你喜欢
        • 2018-09-21
        • 2013-07-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多