簡體   English   中英

將字符串數組加載到List中的最佳方法是什么 <int> ?

[英]What is the most elegant way to load a string array into a List<int>?

考慮一個包含數值的字符串數組:

string[] intArray = {"25", "65" , "0"};

將數字加載到List<int>而不使用forwhile迭代intArray的最優雅方法是什么?

您可以使用Enumerable.Select方法

List<int> intList = intArray.Select(str => int.Parse(str)).ToList();

(除了德米特里的回答)
你可以擺脫lambda,因為那個方法已經有了正確的簽名:

List<int> intList = intArray.Select(Int32.Parse).ToList();

只需調用Select()

using System.Linq;

var list = intArray.Select(x => Convert.ToInt32(x));

PS:我最初回答后你的問題發生了變化。

這是做到這一點的方法..

string[] intArray = { "25", "65", "0" };
List<int> intList = new List<int>(Array.ConvertAll(intArray, s => int.Parse(s)));

要么

 string[] intArray = { "25", "65", "0" };
 List<int> intList = new List<int>(intArray.Select(int.Parse).ToArray());

要么

 string[] intArray = { "25", "65", "0" };
 List<int> intList = new List<int>(Array.ConvertAll(intArray, int.Parse));

我很驚訝沒有人提到int.TryParse

string[] intArray = { "25", "65", "0" };
int tempNumber;
List<int> list = intArray.Select(r => int.TryParse(r, out tempNumber) 
                                     ? tempNumber : -1)
                     .ToList();

這將處理無效輸入並返回-1作為值。 (可以是指定錯誤或0任何數字)

如果intArray只包含可解析的整數,那么以下將完成工作:

List<int> list = intArray.Select(int.Parse).ToList();

暫無
暫無

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

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