List<Dot> dots = new List<Dot>();
dots.Add(new Dot { dt=DateTime.Now, Father="1号",Name="1号点",Value=12.121f});
dots.Add(new Dot { dt = new DateTime(2010,2,3,21,21,12), Father = "2号", Name = "2号点", Value = 12.121f });
dots.Add(new Dot { dt = new DateTime(2010, 2, 3, 1, 1, 4), Father = "3号", Name = "3号点", Value = 12.121f });
dots.Add(new Dot { dt = new DateTime(2010, 3, 3, 23, 2, 3), Father = "10号", Name = "10号点", Value = 12.121f });
dots.Add(new Dot { dt = new DateTime(2010, 4, 1, 21, 21, 6), Father = "11号", Name = "11号点", Value = 12.121f });
dots.Add(new Dot { dt = new DateTime(2010, 1, 2, 8, 22, 8), Father = "12号", Name = "12号点", Value = 12.121f });
dots.Add(new Dot { dt = new DateTime(2010, 2, 12, 9, 3, 12), Father = "20号", Name = "20号点", Value = 12.121f});
dots.Add(new Dot { dt = new DateTime(2010, 7, 13, 11, 6, 11), Father = "21号", Name = "21号点", Value = 12.121f });
dots.Add(new Dot { dt = DateTime.Now, Father = "21号", Name = "21号点", Value = 12.121f });
dots.Add(new Dot { dt = DateTime.Now, Father = "2号", Name = "2号点", Value = 12.121f});
dots.Add(new Dot { dt = DateTime.Now, Father = "10号", Name = "10号点", Value = 12.121f });
dots.Add(new Dot { dt = DateTime.Now, Father = "11号", Name = "11号点", Value = 12.121f });
//时间分组
var ds = from d in dots group d by d.dt.ToString();
DataTable table = new DataTable();
table.Columns.Add("1");
table.Columns.Add("2");
table.Columns.Add("3");
table.Columns.Add("4");
foreach (var g in ds)
{
//因为每个Father名称都以数字开始命名,故(ˇˍˇ) 想按数字大小排序,而非按字符串"数字"大小排序。应该怎么实现?
var ds2 = from d2 in g orderby d2.Father.Substring(0,2) orderby d2.Name select d2; foreach (var d in ds2)
{
table.Rows.Add(new object[] {d.dt,d.Father,d.Name,d.Value });
}
}
dataGridView1.DataSource = table.DefaultView;
解决方案 »
- C#给Excel插入数据报Microsoft Office Access 数据库引擎找不到对象“BlogClass”。请确定该对象存在,并正确拼写其名称和路径名
- window.location.href 跳转后,下个页面怎么取url?
- 我好累呀,有没有程序员减压的方法啊?
- C#中的小麻烦!!!!
- 在c#中怎样得到数据库中的字段类型?
- 请教做mp3音乐网站应该怎么做?(C#,sql,asp)
- QueryString到底能带多长的字符串?为什么6个汉字都会丢失一个?4个汉字的情况下才不会丢失~!
- IIS支持ipv6吗?
- 请大家给我看看这样的功能怎么来实现!
- 两个函数的传值问题
- 请问有办法在类库里调用资源文件吗?
- c#winform中textbox如何实现里面的值从左至右滚动显示
List<Dot> dots = new List<Dot>();
dots.Add(new Dot { dt = DateTime.Now, Father = "1号", Name = "1号点", Value = 12.121f });
dots.Add(new Dot { dt = new DateTime(2010, 2, 3, 21, 21, 12), Father = "2号", Name = "2号点", Value = 12.121f });
dots.Add(new Dot { dt = new DateTime(2010, 2, 3, 1, 1, 4), Father = "3号", Name = "3号点", Value = 12.121f });
dots.Add(new Dot { dt = new DateTime(2010, 3, 3, 23, 2, 3), Father = "10号", Name = "10号点", Value = 12.121f });
dots.Add(new Dot { dt = new DateTime(2010, 4, 1, 21, 21, 6), Father = "11号", Name = "11号点", Value = 12.121f });
dots.Add(new Dot { dt = new DateTime(2010, 1, 2, 8, 22, 8), Father = "12号", Name = "12号点", Value = 12.121f });
dots.Add(new Dot { dt = new DateTime(2010, 2, 12, 9, 3, 12), Father = "20号", Name = "20号点", Value = 12.121f });
dots.Add(new Dot { dt = new DateTime(2010, 7, 13, 11, 6, 11), Father = "21号", Name = "21号点", Value = 12.121f });
dots.Add(new Dot { dt = DateTime.Now, Father = "21号", Name = "21号点", Value = 12.121f });
dots.Add(new Dot { dt = DateTime.Now, Father = "2号", Name = "2号点", Value = 12.121f });
dots.Add(new Dot { dt = DateTime.Now, Father = "10号", Name = "10号点", Value = 12.121f });
dots.Add(new Dot { dt = DateTime.Now, Father = "11号", Name = "11号点", Value = 12.121f });
//时间分组
var ds = from d in dots group d by d.dt.ToString();
DataTable table = new DataTable();
table.Columns.Add("1");
table.Columns.Add("2");
table.Columns.Add("3");
table.Columns.Add("4");
foreach (var g in ds)
{
//因为每个Father名称都以数字开始命名,故(ˇˍˇ) 想按数字大小排序,而非按字符串"数字"大小排序。应该怎么实现? //这样可以得到你想要的结果
var ds2 = from d2 in g orderby Convert.ToInt32((d2.Father.Replace("号", "")) select d2;
foreach (var d in ds2)
{
table.Rows.Add(new object[] { d.dt, d.Father, d.Name, d.Value });
}
}
var ds2 = from d2 in g orderby int.Parse(d2.Father.TrimEnd('号')) orderby int.Parse(d2.Name.TrimEnd('号','点')) select d2;