如何将List <string>转换为List <int>?
我的问题是这个问题的一部分:
我从一个表单收到一个id的集合。 我需要获得键,将它们转换为整数,并从数据库中select匹配的logging。
[HttpPost] public ActionResult Report(FormCollection collection) { var listofIDs = collection.AllKeys.ToList(); // List<string> to List<int> List<Dinner> dinners = new List<Dinner>(); dinners= repository.GetDinners(listofIDs); return View(dinners); }
listofIDs.Select(int.Parse).ToList()
使用Linq …
List<string> listofIDs = collection.AllKeys.ToList(); List<int> myStringList = listofIDs.Select(s => int.Parse(s)).ToList();
使用Linq:
var intList = stringList.Select(s => Convert.ToInt32(s)).ToList()
我知道这是旧的职位,但我认为这是一个很好的补充:您可以使用List<T>.ConvertAll<TOutput>
List<int> integers = strings.ConvertAll(s => Int32.Parse(s));
我认为这是最简单的方法:
var listOfStrings = (new [] { "4", "5", "6" }).ToList(); var listOfInts = listOfStrings.Select<string, int>(q => Convert.ToInt32(q));
public List<int> ConvertStringListToIntList(List<string> list) { List<int> resultList = new List<int>(); for (int i = 0; i < list.Count; i++) resultList.Add(Convert.ToInt32(list[i])); return resultList; }
这是一个安全的变体,可以过滤掉无效的整数:
List<int> ints = strings .Select(s => Int32.TryParse(s, out int n) ? n : (int?)null) .Where(n => n.HasValue) .Select(n => n.Value) .ToList();
它使用了C#7.0中引入的新的variables。
这个其他变体返回一个可为null的int列表,其中为无效整数插入null
项(即保留原始列表数):
List<int?> nullableInts = strings .Select(s => Int32.TryParse(s, out int n) ? n : (int?)null) .ToList();
list<int> integersList = decimalList.cast<int>().ToList()
如果可为空的types,那么只需放置'?' 在它的types之前,像
list<int?> integersList = decimalList.cast<int?>().ToList()