选择特定的记录单元格



我使用的是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中获得特定paramvalue,我需要去foreachfor loop。但我不想那么做。我想用linqfetch 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();

最新更新