我使用的是ASP。NET 3.5和c#。
我已经采取了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
现在,如果我想在variable
中获得特定param
的value
,我需要去foreach
或for loop
。但我不想那么做。我想用linq
来fetch value of each param into respective variable
。有人帮忙吗?对不起,我是新的使用linq
,所以我没有太多的知识如何执行这样的事情。
如果您的Param
是唯一的,您可以使用ToDictionary
将其转换为Dictionary以获得更好的性能。
var dic = dt.AsEnumerable()
.ToDictionary(r => r.Field<string>("Param"),
r => r.Field<string>("Value"));
那么你可以得到值:
Re = dic["Re"];
....
Dictionar<string,string>
将是一个更好的选择,其中Key
可以是Param
, Value
可以是DataTable中的Value
。
你可以这样做:
Dictionary<string, string> dictionary =
dt.AsEnumerable()
.ToDictionary(r=> r.Field<string>("Param"), r=> r.Field<string>("Value"));
为Param/values使用字典:
datatable.AsEnumerable().ToDictionary(d=>d.Field<string>("Param"),
v=>v.Field<string>("Value"));
您可能需要修改对datatable的查询,以便获得具有类似
参数的特定行声明参数变量
string str_param="Re";
然后更新你的datatable查询如下所示
DataTable dt1 = GetDataTable("select * from table where param=str_param", null);
则可以将结果存储在string
中string Re = dt1.Rows[0]["Param"].ToString();