如何使用数据表列名称键和值作为行值创建字典 [英] How to create a dictionary with data table column name key and value as row values

查看:80
本文介绍了如何使用数据表列名称键和值作为行值创建字典的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨朋友



如何创建一个数据表列名为 key 且值为行的字典价值。



我的字典声明是

字典<字符串,双> prereturnValues =  new 字典< string,double>(); 





请帮助



我是什么尝试过:



 dtStratergic.AsEnumerable()。ToDictionary< DataRow, string ,double>(row = >  row.Field< string>( 0  ),row = >  row.Field< double>(rowPosition)

解决方案

试试这个

 DataTable dt =  new  DataTable(); 
dt.Columns .Add( DoubleColumn1);
dt.Columns.Add( DoubleColumn2);
dt.Rows.Add( 1 2 );
dt.Rows.Add( 2 4 );

字典<字符串, double [] > 字典= new 字典<字符串, double [] > < /跨度>();
for int i = 0 ; i < dt.Columns.Count; i ++)
dict.Add(dt.Columns [i] .ColumnName,dt.Rows.Cast< ; DataRow>()。选择(k = > Convert.ToDouble(k [dt.Columns [i]]))。ToArray());





in lambda:

 dtStratergic.Columns.Cast< DataColumn>()。 ToList()。ForEach(c = >  prereturnValues.Add(c.ColumnName,Convert.ToDouble(WSG_Planning.dtStratergic.Rows [rowPosition] [c.ColumnName]。 ToString()))); 


我的问题得到了一个解决方案。



< pre lang =C#> foreach (DataColumn column in dtStratergic.Columns)
{prereturnValues 。新增(column.ColumnName,Convert.ToDouble(WSG_Planning.dtStratergic.Rows [rowPosit离子] [column.ColumnName]的ToString()));
}





任何人都可以为此提供Lambda表达式


Hi Friends

How to create a dictionary with data table column name as key and value as row values.

My dictionary declaration is

Dictionary<string, double> prereturnValues = new Dictionary<string, double>();



Please help

What I have tried:

dtStratergic.AsEnumerable().ToDictionary<DataRow, string, double>(row => row.Field<string>(0), row => row.Field<double>(rowPosition)

解决方案

try this

DataTable dt = new DataTable();
         dt.Columns.Add("DoubleColumn1");
         dt.Columns.Add("DoubleColumn2");
         dt.Rows.Add(1, 2);
         dt.Rows.Add(2, 4);

         Dictionary<string, double[]> dict = new Dictionary<string, double[]>();
         for (int i = 0; i < dt.Columns.Count; i++)
             dict.Add(dt.Columns[i].ColumnName, dt.Rows.Cast<DataRow>().Select(k => Convert.ToDouble(k[dt.Columns[i]])).ToArray());



in lambda:

dtStratergic.Columns.Cast<DataColumn>().ToList().ForEach( c=>  prereturnValues.Add(c.ColumnName,Convert.ToDouble(WSG_Planning.dtStratergic.Rows[rowPosition][c.ColumnName].ToString())));


I got a solution for my Question.

foreach (DataColumn column in dtStratergic.Columns)
{  prereturnValues.Add(column.ColumnName,Convert.ToDouble(WSG_Planning.dtStratergic.Rows[rowPosition][column.ColumnName].ToString()));
}



Can any one please provide Lambda expression for this


这篇关于如何使用数据表列名称键和值作为行值创建字典的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆