
c#字典dictionary绑定datagridview如何排序 5
Dictionary<int, double> dic = new Dictionary<int, double>();
m = 0.26531 * sim1 + 0.22449 * sim2 + 0.18367 * sim3 + 0.14286 *sim4 +0.10204 * sim5 + 0.06122 * sim6 + 0.0041 * sim7;
dic.Add(int.Parse(tl.GetValue(0).ToString()), m);
BindingSource bs = new BindingSource();
bs.DataSource = dic;
this.dataGridView1.DataSource = bs;
this.dataGridView1.Columns[0].HeaderText = "Gid";
this.dataGridView1.Columns[1].HeaderText = "相似度";
如何对“相似度”列进行排序??请高手指点!谢谢! 展开
Dictionary排序
Dictionary<int, string> list = new Dictionary<int, string>();//实例化一个字典
Random rd = new Random();//为了更加真实,创建一个生成整数的随机数生成器
int id = 0;
List<int> idlist = new List<int>();//用来生成100个整数,并存放到列表里idlist
for (int i = 0; i < 100; i++)
{
id = rd.Next(1, 100);
idlist.Add(id);
}
//遍历列表idlist,并加入字典list
foreach (int item in idlist)
{
if (!list.ContainsKey(item))
{
list.Add(item, "字典排序测试");
}
}
//实现排序的关键方法,可以声明一个key-value结构的集合数组,这里用了List,只要符合key-value结构的数据结构都可以,
//然后利用字典的OrderBy(升序)、OrderByDescending(降序)方法轻松实现排序功能
//通过过linq也可以实现:var result = from pair in dic orderby pair.Key select pair
List<KeyValuePair<int, string>> lstorder = list.OrderByDescending(c => c.Key).ToList();
DataTable dt = new DataTable();
dt.Columns.Add("编号");
dt.Columns.Add("内容");
foreach (KeyValuePair<int, string> item in lstorder)
{
dt.Rows.Add(item.Key, item.Value);
}
this.dataGridView1.DataSource = dt;//用DataGridView来展示结果
效果如下