2014-07-16 2 views
-3
var bndlSummary = GetBundleSummary(GroupIds); 
var cntrSummary = GetContainerSummary(GroupIds); 
var finalSummary = GetFinalSummary(GroupIds); 

Над var извлекает некоторые данные из базы данных. Все они имеют одно общее имя поля «Город». Значение города может повторяться много раз, например City = Chicago может быть 3 раза и более). теперь я хочу, чтобы это значение поля города во всех именах. Я не хочу, чтобы City Info повторялась из любого var.C# Считать значения списков и добавить

var allCityNames = new cityAnalysisSummary(); 

Пожалуйста, помогите мне, как я должен это делать. Большое спасибо за Вашу помощь.

+0

Прежде всего, какие типы являются bndlSummary, cntrlSummary, finalSummary? все они типа List

или что-то в этом роде? –

ответ

2
bndlSummary.Select(b => b.City) 
      .Concat(cntrSummary.Select(c => c.City)) 
      .Concat(finalSummary.Select(f => f.City)) 
      .Distinct(); 

Используйте Select, чтобы получить все города из каждой коллекции, Concat поместить их всех вместе, и Distinct для удаления дубликатов.

Вы также можете использовать Union, который будет удалить дубликаты в то время как конкатенации:

bndlSummary.Select(b => b.City) 
      .Union(cntrSummary.Select(c => c.City)) 
      .Union(finalSummary.Select(f => f.City)); 
+1

Вы можете использовать ['Союз'] (http://msdn.microsoft.com/en-us/library/vstudio/bb341731 (v = vs.100) .aspx), который в основном совпадает с« Concat », кроме него удаляет дубликаты, поэтому не нужно использовать «Distinct». – vcsjones

+0

@vcsjones, если ни одна из них не будет повторяться в коллекции, которая будет работать. Спасибо за комментарий! – BradleyDotNET

+0

@BradleyDotNET ваш первый .Concat должен быть .Concat (cntrSummary.Select (c => c.City)) not .Concat (cntr.Select (c => c.City)) –

Смежные вопросы