C# 如何连接列表中的两个列值?
我试图连接列表中的两个列值,并分别选择所有列,但我所能实现的只是在列表中获得一个连接的列,而没有其他现有列数据。由于我使用C# 如何连接列表中的两个列值?,c#,linq,C#,Linq,我试图连接列表中的两个列值,并分别选择所有列,但我所能实现的只是在列表中获得一个连接的列,而没有其他现有列数据。由于我使用选择来连接,所以我会松开列表中的其他列数据 Linq查询: data = data.Select(m => m.Name = m.Id + m.Place).ToList(); // m=>m kindoff with concatenation 我需要修改数据,如列名name将保留Id+Place,并且我可以完整地获取所有列的数据(Place,Addres
选择
来连接,所以我会松开列表中的其他列数据
Linq查询:
data = data.Select(m => m.Name = m.Id + m.Place).ToList(); // m=>m kindoff with concatenation
我需要修改数据,如列名
name
将保留Id+Place
,并且我可以完整地获取所有列的数据(Place
,Address
,等等)。使用选择新的:
var data2 = from c in data
select new
{
Name = c.Id + " " + c.Place,
Place = c.Place,
Address = c.Address
};
或:
使用选择新的:
var data2 = from c in data
select new
{
Name = c.Id + " " + c.Place,
Place = c.Place,
Address = c.Address
};
或:
试试这样的
data = data.Select(m => new
{
Name = $"{m.Id} {m.Place}", // Edit to add string interpolation
Place = m.Place,
Address = m.Address,
etc = m.etc
});
虽然您不“需要”包含m.Place、m.Address等的名称(Visual Studio将根据属性名称的不同适当命名),但我发现如果保持语法一致,阅读起来会更容易。尝试类似的方法
data = data.Select(m => new
{
Name = $"{m.Id} {m.Place}", // Edit to add string interpolation
Place = m.Place,
Address = m.Address,
etc = m.etc
});
虽然您不“需要”包含m.Place、m.Address等的名称(Visual Studio将根据属性名称的不同适当命名),但我发现如果保持语法一致,阅读起来会更容易。已经有两个答案适合您。但是他们会给你一个匿名对象的列表
下面将列出您的自定义类(而不是匿名对象)以及所需结果
var result = data.Select(m => new Category
{ Name = m.Name = m.Id + m.Place,
Place = m.Place} ).ToList();
使用您的类名更新Category
(数据所属的同一类或具有这些属性名的不同DTO/View模型)。已经有两个答案适合您。但是他们会给你一个匿名对象的列表
下面将列出您的自定义类(而不是匿名对象)以及所需结果
var result = data.Select(m => new Category
{ Name = m.Name = m.Id + m.Place,
Place = m.Place} ).ToList();
使用您的类名更新Category
(数据是这些属性名的集合的同一类或不同的DTO/视图模型)。假设您要更新特定字段,可以使用foreach子句。这将在不需要调用ToList的情况下更新现有的值
data.ForEach(m => m.Name = m.Id + m.Place);
假设要更新特定字段,可以使用foreach子句。这将在不需要调用ToList的情况下更新现有的值
data.ForEach(m => m.Name = m.Id + m.Place);
不错的一个,但这将(新)
删除现有数据,我担心。不错的一个,但这将(新)
删除现有数据,我担心。酷,这是一个黑客,我很傻,甚至没有给foreach一个机会。干杯,这就是我的技巧,我真是哑巴,连一枪都没打。干杯