簡體   English   中英

如何在List中串聯兩個列值?

[英]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並且所有列數據( PlaceAddress等)都可以保持不變。

試試這樣的東西...

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM