Dynami c Select Specifi c Linq на основе выбранного значения CheckListBox в Linq C# - PullRequest
0 голосов
/ 04 марта 2020

У меня есть класс для заполненного checkListBox в C# Приложение Dekstop, текст и значение которого получены из этого класса.

class clsItemList
{
    public string Text { set; get; }
    public string Value { set; get; }

    public override string ToString()
    {
        return Text;
    }

    public clsItemList(string _Text, string _Value)
    {
        Text = _Text;
        Value = _Value;
    }
}

Я начинаю элемент контрольного списка, используя этот код при загрузке формы:

GenerateModel m = new GenerateModel();
m.Receipt = "Receipt";
m.Date = "Date";
m.Initial = "Initial";
m.FirstName = "FirstName";
m.LastName = "LastName";

checkedListBox1.Items.Add(new clsItemList(m.Receipt, m.Receipt));
checkedListBox1.Items.Add(new clsItemList(m.Date, m.Date));
checkedListBox1.Items.Add(new clsItemList(m.Initial, m.Initial));
checkedListBox1.Items.Add(new clsItemList(m.FirstName, m.FirstName));
checkedListBox1.Items.Add(new clsItemList(m.LastName, m.LastName));

Я перехватил выбранное значение флажка на основе этого:

for (int i = 0; i < checkedListBox1.CheckedItems.Count; i++)
{
    ((clsItemList)checkedListBox1.CheckedItems[i]).Value;
}

Проблема заключается в том, как я могу передать значение в параметр Linq Select на основе выбранного элемента в флажке:

List<GenerateModel> members = getDataTopFromDB().Select(x => new GenerateModel
{
    //how to spesific column select from CheckedItems
    ChanceNumber = x.ChanceNumber,
    FirstName = x.FirstName,
    LastName = x.LastName
}).ToList();

Возможно ли динамически c выбрать указанный столбец c из checkboxlist1 проверено?

1 Ответ

0 голосов
/ 04 марта 2020
    public class DynamicSelect
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
    class Program
    {
        static void Main(string[] args)
        {
            var list = new List<DynamicSelect>();
            list.Add(new DynamicSelect { Id = 1, Name="Foo" });
            list.Add(new DynamicSelect { Id = 2, Name="Bard" });
            var selectedProps = list.Select(s => s.GetType().GetProperty("Id").GetValue(s));
            foreach (var prop in selectedProps)
            {
                Console.WriteLine(prop);
            }


        }
    }
...