我用一组数据:
(string id,double le,string name)
如下数据:
(id1,100,A)
(id2,50,A)
(id3,70,A)
(id4,80,B)
(id4,90,B)
(id5,50,C)
(id6,40,C)
(id7,90,C)
...
我想整理成只包含,name中le最大那组,如下所示:
(id1,100,A)
(id4,90,B)
(id7,90,C)
用什么样的数据存储方式比较方便查找,其中id和name不按顺序的。不要用到数据库。数据量不大,就百来个。
(string id,double le,string name)
如下数据:
(id1,100,A)
(id2,50,A)
(id3,70,A)
(id4,80,B)
(id4,90,B)
(id5,50,C)
(id6,40,C)
(id7,90,C)
...
我想整理成只包含,name中le最大那组,如下所示:
(id1,100,A)
(id4,90,B)
(id7,90,C)
用什么样的数据存储方式比较方便查找,其中id和name不按顺序的。不要用到数据库。数据量不大,就百来个。
解决方案 »
- C# 如何给一个方法加timeout
- 怎样使某个控件不受皮肤控件的影响!
- picturebox加载图片的问题,在线等,解决马上结贴
- 如何将文本做为数据源批量导入数据库!急需,在线等
- 经常出现Session为空的错误,未将对象引用到实例
- C#中有没有类似vfp中的with-endwith
- VS2010 运行后无Start Page且View → Start Page无反应
- 直接100分,一个从dataset中取数据的小问题,本人使用c#两天,还请大家帮忙
- 如何在 .NET Compact Framework 中实现“选择文件夹”标准对话框
- 用 jmail 类 如何删除邮箱上的邮件?请写出例子
- c#文件读写
- panle 和 toolstrip 同时设置dock为top后,如何使得toolstrip在panel的上方?
三元组。
这个无意中给人家加了难度。。
人家会告诉你,我用datatable循环很好啊,用你这个干吗。。
或者更甚者,你这个有问题吧,都报错的
不知道谁LINQ用得好的,这个应该能实现。
xml不需要写文件可以用啊
数据结构灵活查询方便
xml.linq命名空间下的XElement非常好用啊
查询起来linq也很快
楼组可以试试
或者说用Tuple
个人习惯用xml 呵呵
xml不需要写文件可以用啊
数据结构灵活查询方便
xml.linq命名空间下的XElement非常好用啊
查询起来linq也很快
楼组可以试试
或者说用Tuple
个人习惯用xml 呵呵
听起来很不错,能不能帮忙写个代码呢?
group by name select Ie 可以取到最大值,但是,怎么知道最大值的 id = ? 呢?
class Program
{
static void Main(string[] args)
{
string str = "<list>"
+ "<item id='1' le='100' name='A'/>"
+ "<item id='2' le='50' name='A'/>"
+ "<item id='3' le='40' name='A'/>"
+ "<item id='4' le='80' name='B'/>"
+ "<item id='5' le='70' name='B'/>"
+ "<item id='6' le='20' name='C'/>"
+ "<item id='7' le='10' name='C'/>"
+ "<item id='8' le='5' name='C'/>"
+"</list>"; XElement list = XElement.Parse(str);
var query = from i in list.Elements("item")
group i by i.Attribute("name").Value into g
select new
{
MaxValue = g.Max(p =>double.Parse(p.Attribute("le").Value))
};
foreach (var i in query)
{
Console.Write(i.MaxValue);
}
Console.ReadLine();
}
}
小例子给你
{
new Tuple<string,double,string>("1",15,"A"),
new Tuple<string,double,string>("2",20,"A"),
new Tuple<string,double,string>("3",30,"B"),
new Tuple<string,double,string>("4",45,"B"),
new Tuple<string,double,string>("5",55,"C"),
new Tuple<string,double,string>("6",75,"C"),
new Tuple<string,double,string>("7",95,"C")
}; var q = from i in list1
group i by i.Item3 into g
select new { Value = g.Max(v => v.Item2) };
foreach (var i in q)
{
Console.WriteLine(i.Value);
}用Tuple也不难 也写了个参考给你