2016-04-13 6 views
0

Я пытаюсь объединить два значения столбца внутри списка и соответственно выбрать все столбцы, но все, что я могу достичь, это получить объединенный столбец внутри списка без каких-либо других существующих данных столбцов. Поскольку я теряю другие данные столбцов внутри списка, потому что я используя select, чтобы объединить.Как объединить два значения столбца внутри списка?

Linq запросов:

data = data.Select(m => m.Name = m.Id + m.Place).ToList(); // m=>m kindoff with concatenation 

мне нужно данные, которые будут изменены, как имя столбца Name будет держать Id+Place и я получаю все столбцы данных неповрежденные (Place, Address и т.д.) может быть гораздо больше.

ответ

1

Предполагая, что вы хотите обновить определенные поля, вы можете использовать предложение foreach. Это приведет к обновлению значений, не требуя вызова ToList.

data.ForEach(m => m.Name = m.Id + m.Place); 
+0

круто, это хак, я так тупой, даже не выстрелил в foreach. ура –

0

Использование select new:

var data2 = from c in data 
      select new 
      { 
       Name = c.Id + " " + c.Place, 
       Place = c.Place, 
       Address = c.Address 
      }; 

Или:

var data3 = data.Select(c => new { c.Address, Name = string.Format("{0} {1}", c.Id, c.Place)}); 
+0

цените ваше время. cheers –

2

Попробуйте что-то вроде этого ...

data = data.Select(m => new 
{ 
    Name = m.Id + m.Place, 
    Place = m.Place, 
    Address = m.Address, 
    etc = m.etc 
}); 

Пока вы не "нужно" включить имя m.Place, m.Address и т. д. (Visual Studio назовет их соответствующим образом на основе имени свойства), я считаю, что проще t o читать, если вы сохраняете синтаксис согласованным.

+0

ценят ваше время приветствия –

0

Уже есть два ответа, которые должны работать на вас. Но они дают вам список анонимных объектов.

Ниже приведен список вашего пользовательского класса (вместо анонимного объекта) с желаемым результатом.

var result = data.Select(m => new Category 
           { Name = m.Name = m.Id + m.Place, 
            Place = m.Place}).ToList(); 

Update Category с именем класса (тот же класс, данные представляют собой совокупность или другой DTO/Посмотреть модель с этими именами свойств).

+0

приятный, но это будет '(новый)' стереть существующие данные, я боюсь. –

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