【问题标题】:.NET Core: Array class does not contain definition for ConvertAll.NET Core:数组类不包含 ConvertAll 的定义
【发布时间】:2023-04-06 03:12:01
【问题描述】:

我目前正在关注 https://www.hackerrank.com/challenges/diagonal-difference 以了解我的 C# 学习过程。我复制并粘贴给定的 C# 代码。这里我需要将 String 数组转换为 Int Array。示例代码使用Array.ConvertAll(a_temp,Int32.Parse) 来做到这一点。但在我的 Visual Studio Community 2017 IDE 中,ConverAll 方法出错。

'Array' 不包含 ConvertAll 的定义

但是当我提到

如您所见,我的 IDE 没有为 ConvertAll 方法提供建议。我不确定这是初学者的愚蠢错误。所以我将在这里添加我在IDE中的代码(hackerrank中的代码几乎相同)

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
class Solution
{
    static void Main(String[] args)
    {
        int n = Convert.ToInt32(Console.ReadLine());
        int[][] a = new int[n][];
        for (int a_i = 0; a_i < n; a_i++)
        {
            string[] a_temp = Console.ReadLine().Split(' ');
            a[a_i] = Array.ConvertAll(a_temp, Int32.Parse);
        }
    }
}

【问题讨论】:

  • 我在我的vs2017社区测试过,可以编译,你用的是什么.net框架版本?
  • 你好@Menuka Ishan 你试过 System.Array.ConvertAll()
  • @DivyeshGauswami System.Array.ConvertAll 不工作
  • 那么您是否使用.net core,您正在创建什么项目类型?
  • 那么您有其他解决方案吗? @MenukaIshan

标签: c# .net arrays visual-studio


【解决方案1】:

看起来您正在.NET Core 项目中工作,而.NET Core 中还没有这种方法。您可以使用Full .NET Framework 4.6.x 创建新项目或使用Enumerable Extensions 来转换您的数组:

string[] a_temp = Console.ReadLine().Split(' ');
a[a_i] = a_temp.Select(s => Int32.Parse(s)).ToArray();

【讨论】:

  • 谢谢。当我使用 Console App(.NET Framework) 而不是 Console App(.NET Core) 时,它起作用了。
  • 我如何知道何时使用 .NET 核心应用程序或 .NET Framework?还是始终选择 .NET Framework 是最佳做法?
  • .NET Core 是一个相对较新的框架,它可以在 Linux 和 Mac OS 上运行。它还支持更新的 ASP.NET MVC 6,并且 Web 应用程序在 ASP.NET Core 上的速度明显更快。所以这在很大程度上取决于要求。我会为新项目选择 .NET Core。
  • 但是在这种情况下呢?我们唯一能做的就是使用完整的 .NET 框架打开新项目?或者有没有办法扩展 .NET 核心?就像我们在 java 中所做的那样。添加依赖项?
  • @MenukaIshan、.NET Core 1.x 和 NetStandard 1.x 的 API 有限。目前无法扩展它以使用Array.ConvertAll 或其他缺失的 API。今年晚些时候将发布 NetStandard 2.0 和 .NET Core 2.0,它们将涵盖更多 API。有办法实现与我展示的相同的行为,但否则您需要使用完整框架。
猜你喜欢
  • 2019-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多