C# 列表中项目的最高数据表值
我有一个如下所示的数据表:C# 列表中项目的最高数据表值,c#,list,linq,datatable,C#,List,Linq,Datatable,我有一个如下所示的数据表: type | Value ---------- a | 5 b | 6 c | 10 d | 23 e | 8 var list = new List<string>() {a, c, e} 我有一个存储某些类型的列表,如下所示: type | Value ---------- a | 5 b | 6 c | 10 d | 23 e | 8 var list = new
type | Value
----------
a | 5
b | 6
c | 10
d | 23
e | 8
var list = new List<string>() {a, c, e}
我有一个存储某些类型的列表,如下所示:
type | Value
----------
a | 5
b | 6
c | 10
d | 23
e | 8
var list = new List<string>() {a, c, e}
var list=newlist(){a,c,e}
我对LINQ不是很在行,但我正在寻找一个返回列表中类型的最高值的语句。有人能帮我吗
谢谢 您可以使用类似的方法:
int maxValue = list.Max(m =>
dt.AsEnumerable()
.First(r => r.Field<string>("type") == m)
.Field<int>("value")
);
intmaxvalue=list.Max(m=>
dt.AsEnumerable()
.First(r=>r.Field(“type”)==m)
.字段(“值”)
);
尝试以下操作:
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();
}
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用系统数据;
命名空间控制台应用程序186
{
班级计划
{
静态void Main(字符串[]参数)
{
DataTable dt=新的DataTable();
添加(“类型”,类型(字符串));
添加(“值”,类型(int));
Add(新对象[]{“a”,0});
Add(新对象[]{“b”,0});
Add(新对象[]{“c”,0});
Add(新对象[]{“d”,0});
Add(新对象[]{“e”,0});
Add(新对象[]{“a”,5});
Add(新对象[]{“b”,6});
Add(新对象[]{“c”,10});
Add(新对象[]{“d”,23});
Add(新对象[]{“e”,8});
列表最大值=dt.AsEnumerable()
.OrderByDescending(x=>x.Field(“值”))
.GroupBy(x=>x.Field(“类型”))
.Select(x=>x.FirstOrDefault())
.ToList();
}
}
}
试试这个:
int maxValue = list.Max(m =>
dt.AsEnumerable()
.First(r => r.Field<string>("type") == m)
.Field<int>("value")
);
intmaxvalue=list.Max(m=>
dt.AsEnumerable()
.First(r=>r.Field(“type”)==m)
.字段(“值”)
);
非常感谢!