C# Linq查询将Select语句作为参数传递
我有一个列表,其中包含窗体上控件的名称,我使用foreach递归该列表。在foreach中,我将数据与它所属的控件相结合,并不断得到一个错误。基本上,一个列表用于生成select语句。感谢您的帮助C# Linq查询将Select语句作为参数传递,c#,linq,c#-4.0,C#,Linq,C# 4.0,我有一个列表,其中包含窗体上控件的名称,我使用foreach递归该列表。在foreach中,我将数据与它所属的控件相结合,并不断得到一个错误。基本上,一个列表用于生成select语句。感谢您的帮助 DatabaseField=item.DatabaseField.ToString(); DatabaseValue=SelectOutput.Select(item.DatabaseField.FirstOrDefault(); 希望这能奏效 public class DatabaseDet
DatabaseField=item.DatabaseField.ToString();
DatabaseValue=SelectOutput.Select(item.DatabaseField.FirstOrDefault();
希望这能奏效
public class DatabaseDetails
{
public string DatabaseField { get; set; }
public string DatabaseValue { get; set; }
}
public class Program
{
static void Main(string[] args)
{
List<DatabaseDetails> SelectOutput = new List<DatabaseDetails>();
List<string> ControlsInView = new List<string>();
ControlsInView.Add("txtName");
ControlsInView.Add("txtPhone");
ControlsInView.Add("txtAddress");
ControlsInView.Add("txtPIN");
SelectOutput.Add(new DatabaseDetails()
{
DatabaseField = "txtName",
DatabaseValue = "Ramesh"
});
SelectOutput.Add(new DatabaseDetails()
{
DatabaseField = "txtPhone",
DatabaseValue = "121212121"
});
SelectOutput.Add(new DatabaseDetails()
{
DatabaseField = "txtAddress",
DatabaseValue = "XYZ"
});
SelectOutput.Add(new DatabaseDetails()
{
DatabaseField = "txtPIN",
DatabaseValue = "10001"
});
SelectOutput.Add(new DatabaseDetails()
{
DatabaseField = "txtEmail",
DatabaseValue = "ramesh@xyz.com"
});
foreach (string item in ControlsInView)
{
string DatabaseField = item.ToString();
string DatabaseValue = SelectOutput.Where(x => x.DatabaseField == DatabaseField).Select(y=>y.DatabaseValue).FirstOrDefault();
Console.WriteLine(DatabaseField + " : " + DatabaseValue);
}
Console.ReadKey();
}
}
公共类数据库详细信息
{
公共字符串数据库字段{get;set;}
公共字符串数据库值{get;set;}
}
公共课程
{
静态void Main(字符串[]参数)
{
List SelectOutput=新建列表();
列表控件视图=新列表();
ControlsInView.Add(“txtName”);
ControlsInView.Add(“txtPhone”);
ControlsInView.Add(“txtAddress”);
ControlsInView.Add(“txtPIN”);
选择output.Add(新数据库详细信息()
{
DatabaseField=“txtName”,
DatabaseValue=“Ramesh”
});
选择output.Add(新数据库详细信息()
{
DatabaseField=“txtPhone”,
DatabaseValue=“1212121”
});
选择output.Add(新数据库详细信息()
{
DatabaseField=“txtAddress”,
DatabaseValue=“XYZ”
});
选择output.Add(新数据库详细信息()
{
DatabaseField=“txtPIN”,
DatabaseValue=“10001”
});
选择output.Add(新数据库详细信息()
{
DatabaseField=“txtEmail”,
数据库值=”ramesh@xyz.com"
});
foreach(ControlsInView中的字符串项)
{
string DatabaseField=item.ToString();
字符串DatabaseValue=SelectOutput.Where(x=>x.DatabaseField==DatabaseField).Select(y=>y.DatabaseValue).FirstOrDefault();
Console.WriteLine(DatabaseField+“:”+DatabaseValue);
}
Console.ReadKey();
}
}
你能详细描述一下你的列表吗?你能分享一下你的代码吗?它似乎不起作用。我试图得到的是这样的结果:从DatabaseValue中选择DatabaseField并返回字符串。不确定你是否能在Linqc中做到这一点。你能分享更多关于你想做什么的细节吗?