带&&

时间:2019-01-31 03:20:47

标签: c# lambda

我正在尝试使用“ &&”构造一个lambda表达式,但遇到一条错误消息:

错误CS1003语法错误','预计

这是我的代码。

   using (var db = new SQLite.SQLiteConnection(dbPath))
        {
            string candidateResult = candidatedetails[0].ToString();
            string fileResult = candidatedetails[1].ToString();

            var list = db.Table<Candidates>().ToList();

            var cand = db.Table<Candidates>().Where(p => p.CandidateName == candidateResult && p => p.FileIdentification == fileResult);
            foreach (Candidates can in cand)
            {
                string[] FileIDSplit = can.FileIdentification.Split('_');
                CandidateName = can.CandidateName;
                CandidateParty = can.CandidateParty;
                ElectionYear = FileIDSplit[0];
                ElectionType = FileIDSplit[1];
                Race = FileIDSplit[2];
            }
        }

该错误发生在第二个“ p => p”处。

2 个答案:

答案 0 :(得分:4)

您只需指定一次lambda输入变量(p =>),右侧只是一个表达式,可以随意使用输入p

...Where(p => p.CandidateName == candidateResult && p.FileIdentification == fileResult);

Lambda expressions (C# Programming Guide)

  

要创建lambda表达式,请指定输入参数(如果有)   在lambda运算符=>的左侧,您将表达式   或另一边的语句块

答案 1 :(得分:1)

应该是:

p => p.CandidateName == candidateResult && p.FileIdentification == fileResult