Linq选择特定的记录单元格

时间:2013-05-22 07:29:55

标签: c# asp.net linq

我正在使用带有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}},我需要转到variableforeach。但我不想这样做。我想for loop使用fetch value of each param into respective variable。有人帮忙吗?对不起,我是使用linq的新手,所以我对如何执行这样的事情知之甚少。

4 个答案:

答案 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可以是ParamValue可以是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();