Получение объекта в списке

Я не придирчив в Вас, но необходимо ли перефразировать вопрос быть , Как Вы убеждаете других разработчиков работать командой?

Серьезно, некоторые люди предполагают, что можно прочитать их мысли.

, Если Вы - часть гибкой команды, код коллективно принадлежит, поэтому когда Вы видите непрокомментированный, неловкий, или трудно считать код, разрешение и изменение (осуществляют рефакторинг) его так, Вы понимаете его. Если люди жалуются, говорят им, почему и первичны. То, что Вы нашли его непостижимым, и никто не владеет кодом.

8
задан John Saunders 26 December 2013 в 19:49
поделиться

5 ответов

Использование списка List . Найти метод в C # 3.0:

var config = Configurations.Find(item => item.Name == "myConfig");

В C # 2.0 / .NET 2.0 вы можете использовать что-то вроде следующего (синтаксис может быть немного неправильным, поскольку я не писал делегатов таким образом довольно долгое время ... ):

Configuration config = Configurations.Find(
    delegate(Configuration item) { return item.Name == "myConfig"; });
18
ответ дан 5 December 2019 в 06:38
поделиться

Похоже, что вам действительно нужен словарь ( http://msdn.microsoft.com/en-us/library /xfhwa508.aspx).[126ptingСловари специально разработаны для сопоставления пар ключ-значение и обеспечат гораздо лучшую производительность при поиске, чем список.

5
ответ дан 5 December 2019 в 06:38
поделиться

Попробуйте List (T). Найдите (C # 3.0):

string value = Configurations.Find(config => config.Name == "myConfig").Value;
0
ответ дан 5 December 2019 в 06:38
поделиться

Вот один из возможных способов использования:

static void Main(string[] args)
        {
            Configuration c = new Configuration();
            Configuration d = new Configuration();
            Configuration e = new Configuration();

            d.Name = "Test";
            e.Name = "Test 23";

            c.Configurations = new List<Configuration>();

            c.Configurations.Add(d);
            c.Configurations.Add(e);

            Configuration t = c.Configurations.Find(g => g.Name == "Test");
        }
0
ответ дан 5 December 2019 в 06:38
поделиться

Подумайте об использовании словаря, но если нет:


Ваш вопрос не совсем ясен для меня, один из обоих должен быть вашим ответом.

используя Linq:

var selected = Configurations.Where(conf => conf.Name == "Value");

или

var selected = Configurations.Where(conf => conf.Name == conf.Value);

Если вы этого хотите в списке:

List<Configuration> selected = Configurations
    .Where(conf => conf.Name == "Value").ToList();

или

List<Configuration> selected = Configurations
    .Where(conf => conf.Name == conf.Value).ToList();
2
ответ дан 5 December 2019 в 06:38
поделиться
Другие вопросы по тегам:

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