gpt4 book ai didi

C# 将 List 转换为 List

转载 作者:IT王子 更新时间:2023-10-29 04:22:27 26 4
gpt4 key购买 nike

我有一个 List<int>我想将其转换为 List<double> .除了循环遍历 List<int> 之外,还有什么办法可以做到这一点吗?并添加到新的 List<double>像这样:

List<int> lstInt = new List<int>(new int[] {1,2,3});
List<double> lstDouble = new List<double>(lstInt.Count);//Either Count or Length, I don't remember

for (int i = 0; i < lstInt.Count; i++)
{
lstDouble.Add(Convert.ToDouble(lstInt[0]));
}

有什么好的方法吗?我使用的是 C# 4.0,因此答案可能会利用新的语言功能。

最佳答案

可以使用Select正如其他人所建议的,但您也可以使用 ConvertAll :

List<double> doubleList = intList.ConvertAll(x => (double)x);

这有两个好处:

  • 它不需要 LINQ,所以如果您使用的是 .NET 2.0 并且不想使用 LINQBridge ,您仍然可以使用它。
  • 效率更高:ToList方法不知道 Select 结果的大小,所以它可能需要重新分配缓冲区。 ConvertAll知道源和目标大小,因此它可以一次完成所有操作。它也可以在没有迭代器抽象的情况下这样做。

缺点:

  • 它只适用于 List<T>和数组。如果你得到一个普通的 IEnumerable<T>你必须使用 SelectToList .
  • 如果您在项目中大量使用 LINQ,那么在这里也继续使用它可能会更加一致。

关于C# 将 List<int> 转换为 List<double>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2084493/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com