使用LINQ,如何从List中找到具有给定属性值的对象?

Jam*_*123 18 .net c# linq vb.net asp.net

我有一个叫做的课Questions.这Questions有属性QuestionIDQuestionAnswer.虽然List of Question在foreach中迭代这个,但我必须找到.QuestionID = 12.如果我发现.QuestionID = 12那我得马上值赋给.QuestionAnswer = "SomeText".QuestionID = 14.

我不想再次在.QuestionId = 12' to find.QuestionID = 14`内再次迭代.

有什么方法可以直接.QuestionID = 14使用LINQ吗?

例如:

For Each mQuestion As Question In _mQuestions
    If mQuestion.QuestionId = 12 Then
         'Find mQuestion.QuestionID= 14 and insert Somtext to 
          'mQuestion.QuestionAnswer="SomeText"
    End IF
Next
Run Code Online (Sandbox Code Playgroud)

Ant*_*ram 22

我想你正在寻找这样的东西.如果我有片刻,我会将其翻译成VB,但我认为你可以关注.

if (_mQuestions.Any(q => q.QuestionID == 12)) 
{
   Question question14 = _mQuestions.FirstOrDefault(q => q.QuestionID == 14);
   if (question14 != null)
       question14.QuestionAnswer = "Some Text";
}
Run Code Online (Sandbox Code Playgroud)

  • 请不要通过将完美的代码转换为VB来鼓励人们.:) (21认同)
  • ROFL.我*讨厌*VB (6认同)
  • 可能更糟糕的是,我只是盯着一个用VB6成语编写的最近编码的VB.net应用程序.<捂脸> (3认同)
  • @MichaelPaulukonis唯一的解决方案就是自杀 (2认同)
  • 尝试用于 Microsoft 应用程序的 VBA。另一个 pinta vb 子集。 (2认同)