簡體   English   中英

轉換逗號分隔的列表 <string> 列出 <Int>

[英]Convert comma separated List<string> to List<Int>

我有一個包含逗號分隔值的List<string> ,例如,每個項目看起來都像“ 123、123、123”。 現在,我想將其轉換為List<int> 我怎樣才能做到這一點?

我嘗試了以下方法:

List<int> TagIds = parameters.AccidentId.Split(',').Select(int.Parse).ToList();

但它說:

System.Collections.Generic.List不包含“ Split”的定義,該定義接受類型為“ System.Collections.Generic.List”的第一個參數。

我這樣定義我的AccidentId:

if (AccidentId != null && AccidentId.itemsSelected != null)
{
    parameters.AccidentId = new List<string>();
    foreach(var param in AccidentId.itemsSelected)
    {
        parameters.AccidentId.Add(param);
    }
}  

您實際上有一個列表列表。 列表中的每個string都是逗號分隔的列表。

您可以使用SelectMany將多個序列展平為一個列表。

就像是:

parameters.AccidentId.SelectMany(s => s.Split(',').Select(int.Parse)).ToList()

這大致相當於

List<int> TagIds = new List<int>();

foreach(string s in parameters.AccidentId)
{
    string[] accidentIds = s.Split(',');
    foreach(string accidentId in accidentIds)
    {
        TagIds.Add(int.Parse(accidentId));
    }
} 

如果parameters.AccidentIdList<string>而不是單個string ,則不能直接使用String.Split 但是,無論如何,您還是應該重命名該屬性fe AccidentIdList

您可以使用這種方法:

List<int> TagIds = parameters.AccidentId
    .SelectMany(id => id.Split(',').Select(int.Parse))
    .ToList();

Array.ConvertAll

List<int> TagIds = parameters.AccidentId
    .SelectMany(id => Array.ConvertAll(id.Split(','), int.Parse))
    .ToList();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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