我正在尝试连接列表中的两个列值,并分别选择所有列,但我可以实现的是获取列表内的连接列而没有其他现有列数据。因为我松开列表中的其他列数据,因为我'使用select
连接。
Linq查询:
data = data.Select(m => m.Name = m.Id + m.Place).ToList(); // m=>m kindoff with concatenation
我需要修改数据,例如列名Name
将保留Id+Place
,并且我将所有列数据保持原样(Place
,Address
等)可以更多
答案 0 :(得分:3)
尝试这样的事情......
{{1}}
虽然你“不需要”为m.Place,m.Address等包含一个名称(Visual Studio会根据属性名称对它们进行适当的命名),但我发现它更容易阅读你保持语法一致。
答案 1 :(得分:1)
假设您要更新特定字段,可以使用foreach子句。这将更新值,而不需要调用ToList。
data.ForEach(m => m.Name = m.Id + m.Place);
答案 2 :(得分: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)});
答案 3 :(得分:0)
已经有两个答案适合你。但他们会给你一个匿名对象列表。
下面将给出一个包含所需结果的自定义类(而不是匿名对象)的列表。
var result = data.Select(m => new Category
{ Name = m.Name = m.Id + m.Place,
Place = m.Place} ).ToList();
使用您的班级名称更新Category
(与数据是的集合相同的类或具有这些属性名称的其他DTO / View模型)。