我正在使用带有C#的ASP.NET 3.5。
我已经采用了string
个变量,如:
string Re = string.Empty;
string In = string.Empty;
string deWithT = string.Empty;
string deWithoutTt = string.Empty;
string ki = string.Empty;
我有一个DataSet
,其中Tables[0]
包含以下表格数据。
Id Name Param Value
87 E Re AT
88 E In 00
89 E deWithT VK
90 E deWithoutTt CK
91 E ki VH
现在,如果我想在value
中获取特定param
的{{1}},我需要转到variable
或foreach
。但我不想这样做。我想for loop
使用fetch value of each param into respective variable
。有人帮忙吗?对不起,我是使用linq
的新手,所以我对如何执行这样的事情知之甚少。
答案 0 :(得分:3)
如果您的Param
是唯一的,则可以使用ToDictionary
转换为字典以获得更好的效果O(1):
var dic = dt.AsEnumerable()
.ToDictionary(r => r.Field<string>("Param"),
r => r.Field<string>("Value"));
然后你可以得到价值:
Re = dic["Re"];
....
答案 1 :(得分:2)
Dictionar<string,string>
这是一个更好的选择,其中Key
可以是Param
,Value
可以是Value
来自DataTable。
你可以这样做:
Dictionary<string, string> dictionary =
dt.AsEnumerable()
.ToDictionary(r=> r.Field<string>("Param"), r=> r.Field<string>("Value"));
答案 2 :(得分:0)
为Param / values使用字典:
datatable.AsEnumerable().ToDictionary(d=>d.Field<string>("Param"),
v=>v.Field<string>("Value"));
答案 3 :(得分:0)
你可能想要修改你的datatable查询,以获得具有param的特定行
声明你的param var
string str_param="Re";
然后将您的数据表查询更新为此类
DataTable dt1 = GetDataTable("select * from table where param=str_param", null);
然后您可以将结果存储在字符串
中string Re = dt1.Rows[0]["Param"].ToString();