Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq查询将Select语句作为参数传递_C#_Linq_C# 4.0 - Fatal编程技术网

C# Linq查询将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

我有一个列表,其中包含窗体上控件的名称,我使用foreach递归该列表。在foreach中,我将数据与它所属的控件相结合,并不断得到一个错误。基本上,一个列表用于生成select语句。感谢您的帮助

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中做到这一点。你能分享更多关于你想做什么的细节吗?