Как я могу получить первый элемент из коллекции? - PullRequest
4 голосов
/ 25 февраля 2009

Я не знаю, как получить первый предмет из этой коллекции:

IGrouping<string, Plantilla> groupCast = group as System.Linq.IGrouping<string, Plantilla>;

Я тоже попробовал:

IGrouping<string, Plantilla> firstFromGroup = groupCast.FirstOrDefault();

но не работает причина и явное преобразование уже существует

Ответы [ 3 ]

9 голосов
/ 25 февраля 2009

Почему бы просто не использовать var?

var firstFromGroup = group.First();

Что касается причины, по которой вы получаете ошибку, я предполагаю, что либо Ключ, либо Элемент отличается от того, что вы думаете, они есть. Посмотрите оставшуюся часть сообщения об ошибке, чтобы увидеть, на какие типы жалуется компилятор. Обратите внимание, что если задействован анонимный тип, единственный способ получить его - использовать var.

1 голос
/ 25 февраля 2009

Попробуйте (на основе вашего частичного решения):

foreach (var group in dlstPlantillas.SelectedItems)
{
    var groupCast = groupCast = group as System.Linq.IGrouping<string, Plantilla>
    if(groupCast == null) return;

    item = groupCast.FirstOrDefault<Plantilla>();  
    if(item == null) return;

    // do stuff with item
}
0 голосов
/ 25 февраля 2009

Это мое частичное решение:

foreach (var group in dlstPlantillas.SelectedItems)
                {
                    IGrouping<string, Plantilla> groupCast = group as System.Linq.IGrouping<string, Plantilla>;

                    if (null == groupCast) return;
                    foreach (Plantilla item in groupCast.Take<Plantilla>(1)) //works for me
                    {
                        template.codigoestudio = item.codigoestudio;
                        template.codigoequipo = item.codigoequipo;
                        template.codigoplantilla = item.codigoplantilla;
                        template.conclusion = item.conclusion;
                        template.hallazgo = item.hallazgo;
                        template.nombreequipo = item.nombreequipo;
                        template.nombreexamen = item.nombreexamen;
                        template.tecnica = item.tecnica;
                    }
                }
...