Linq в массив, затем найдите значения в массиве и перечислите их в combobox

Я хотел бы вернуть результат запроса LINQ к массиву, тогда список будет выглядеть в этом массиве, например, с буквой "A". И возвратите список в поле со списком, содержащее все буквы "A".

Мой запрос linq:

var collectionName = (
    from row in repos.GetTable<Table_Names>() 
    select row.Name
    ).Distinct().ToArray();

И теперь я не знаю, как искать массив так, чтобы он найдут все из них, содержащие букву "A".

В конечном счете, я хотел бы искать в массиве вместо отправки запросов в базу данных. Это приведет к тому, что список в combobox будет сужаться динамически.

2
задан 13 August 2018 в 15:12

2 ответа

Если вы не хотите фильтровать в базе данных, вы можете использовать linq to objects для дальнейшего фильтрации коллекции в памяти:

var filtered = collectionName.Where(item => item.Contains("A")).ToArray();
0
ответ дан 15 August 2018 в 17:04

Вы можете использовать SqlMethods.Like в запросе LINQ. Проверьте код ниже

private void comboBox1_TextChanged(object sender, EventArgs e)
    {
        comboBox1.DataSource = getItems(comboBox1.Text);
        comboBox1.DisplayMember = "Name";
        comboBox1.ValueMember = "ID";
    }
    public static List<ComboboxItem> getItems(string text)
    {
        DataClasses1DataContext context = new DataClasses1DataContext();
        try
        {
            List<ComboboxItem> Ilist = new List<ComboboxItem>();
            var query =  from x in context.testComboBoxes where SqlMethods.Like(x.name, '%' + text +'%') select x;
            foreach (var q in query)
            {
                ComboboxItem item = new ComboboxItem();
                item.ID = q.id;
                item.Name = q.name;
                Ilist.Add(item);
            }
            return Ilist;
        }
        catch (Exception ex)
        {
            return null;
        }
    }
    public class ComboboxItem
    {
        public object ID { get; set; }
        public string Name { get; set; }
    }
0
ответ дан 15 August 2018 в 17:04

Другие вопросы по тегам:

Похожие вопросы: