Я пытаюсь проверить, существует ли вопрос в элементе управления, а затем выбрать текст вопроса для добавления в список.Получить объекты из списка в Linq в новый список
У меня есть список из 20 вопросов. На экране видны только 7. Я хочу, чтобы получить объекты из списка, которые соответствуют значениям элементов
public partial class CustomQuestion
{
public string QuestionID { get; set; }
public string Question { get; set; }
public string ParentQuestionID { get; set; }
public int QuestionOrder { get; set; }
public string ShowOn { get; set; }
public string Option0 { get; set; }
public string Option1 { get; set; }
public string SelectedOption;
}
public partial class MultipleChoiceQuestion : UserControl
{
public string Answer { get; set; }
public string Question { get; set; }
}
public partial class Form1
{
private List<CustomQuestion> MyQuestion = new List<CustomQuestion>();
private void FindObjects()
{
var mylist = MyQuestion.
Where(qq => qq.Question == FlowLayouPanel1.Controls.Cast<Control>().
Where(x => x is MultipleChoiceQuestion).Cast<MultipleChoiceQuestion>().
Select(c => c.Question));
}
}
Ошибки я получаю:
Error 1 Operator '==' cannot be applied to operands of type 'string' and 'System.Collections.Generic.IEnumerable<string>
Я надеюсь, что это достаточно ясно, чтобы продемонстрировать, что я пытаюсь делать. Если у вас есть какие-либо вопросы или вопросы, которые я могу прояснить, дайте мне знать.
Ну, вы сравниваете 'qq.Question', который является строкой со списком строк, возвращаемых последним' Select (c => c.Question) ', и их нельзя сравнивать. Может быть, вам нужно использовать 'Any' на' Select' результате? –
Вы должны использовать OfType вместо того, чтобы делать серию отливок и стилей. –
@SergeyLitvinov Вы случайно не знаете, куда должен идти Любой? Я думаю, что это ответ, но я не использовал никого до – DidIReallyWriteThat