![](/img/trans.png)
[英]Using a Lambda Expression Over a Dictionary<string, List<object>> in C#
[英]Table To Dictionary <String,Object> using Lambda Expression
我正在尝试将数据表转换为包含字符串和对象的字典,该对象通过方法返回
public class myObj
{
public string Sid { get; set; }
public string Serial { get; set; }
public Double RunTime { get; set; }
public string Username { get; set; }
public string LogonTime { get; set; }
public string SqlText { get; set; }
public string Database { get; set; }
public bool Terminated { get; set; }
public myObj Obj(DataRow row)
{
myObj Session = new myObj();
myObj.Sid = row["SID"].ToString();
myObj.Serial = row["SERIAL#"].ToString();
myObj.Username = row["USERNAME"].ToString();
myObj.RunTime = Convert.ToDouble(row["RUN_TIME"].ToString());
myObj.LogonTime = row["LOGON_TIME"].ToString();
myObj.SqlText = row["SQL_FULLTEXT"].ToString();
myObj.Database = row["DATABASE"].ToString();
return Session ;
}
}
Dictionary<string, Dictionary<string,myObj >> result = table.AsEnumerable().ToDictionary(row => row["USERNAME"].ToString() + "|" + row["SQL_FULLTEXT"].ToString(), row =>
(这里我需要引用Obj(Datarow row)方法,并传递该行以获取返回的对象,以使字典具有
我想通过Lambda表达式来做到这一点。 我能够通过使用Dictionary.Add循环执行此操作
public class myObj
{
public string Sid { get; set; }
public string Serial { get; set; }
public Double RunTime { get; set; }
public string Username { get; set; }
public string LogonTime { get; set; }
public string SqlText { get; set; }
public string Database { get; set; }
public bool Terminated { get; set; }
public myObj()
{
}
public myObj(DataRow row)
{
myObj Session = new myObj();
myObj.Sid = row["SID"].ToString();
myObj.Serial = row["SERIAL#"].ToString();
myObj.Username = row["USERNAME"].ToString();
myObj.RunTime = Convert.ToDouble(row["RUN_TIME"].ToString());
myObj.LogonTime = row["LOGON_TIME"].ToString();
myObj.SqlText = row["SQL_FULLTEXT"].ToString();
myObj.Database = row["DATABASE"].ToString();
return Session ;
}
}
Dictionary<myObj,string > result =
table.AsEnumerable()
.ToDictionary(
row => new myObj(row), row => row["USERNAME"].ToString() + "|" + row["SQL_FULLTEXT"].ToString());
您可以使用Dictionary.Add来做到这一点,但不能使用ToDictionary。 原因是ToDictionary确实允许您更改指定键选择器函数的'row => row [“ USERNAME”]。ToString()+“ |” +行[“SQL_FULLTEXT”]。的ToString()”你的情况,但它不会让你改变底层的枚举类型。
您只能使用ToDictionary()创建类型为Dictionary <T, DataRow>
字典(假设表的类型为DataTable);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.