[英]How to concatenate two column values inside List?
我試圖將一個列表中的兩個列值連接起來並分別選擇所有列,但我能實現的是在列表中獲取一個沒有其他現有列數據的連接列。由於我正在使用select
所以我松散了列表中的其他列數據連接。
Linq查詢:
data = data.Select(m => m.Name = m.Id + m.Place).ToList(); // m=>m kindoff with concatenation
我需要修改數據,例如列名Name
將保留Id+Place
並且所有列數據( Place
, 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會根據屬性名稱對它們進行適當的命名),但我發現如果保留該名稱,將更容易閱讀語法一致。
假設您要更新特定字段,可以使用foreach子句。 這將在適當的位置更新值,而無需調用ToList。
data.ForEach(m => m.Name = m.Id + m.Place);
使用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)});
已經有兩個答案對您有用。 但是它們給您一個匿名對象的列表。
下面將給出具有所需結果的自定義類的列表( 而不是匿名對象 )。
var result = data.Select(m => new Category
{ Name = m.Name = m.Id + m.Place,
Place = m.Place} ).ToList();
用您的類名( 與該類是數據的集合是同一類,或者使用這些屬性名來更新DTO / View模型)來更新Category
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.