使用C#中的I/O按字母顺序排列
本文关键字:顺序 排列 中的 使用 | 更新日期: 2023-09-27 17:58:30
我正在尝试使用一个I/O,并使用一个名为"按字母顺序"的方法按字母顺序对输入文件进行排序,这有一个编译错误
(35,42):错误CS1061:"string"不包含"ToArray"的定义,并且找不到接受"string"类型的第一个参数的扩展方法"ToArray"(是否缺少using指令或程序集引用?)
我能做些什么来解决这个问题?
using System;
using System.IO;
namespace examplefile
{
class examplefile
{
static void Main(string[] args)
{
StreamWriter writer = null;
writer = new StreamWriter(@"C:'C#Files'OutputWrite2.txt");
Console.SetOut(writer);
Console.SetIn(new StreamReader(@"C:'C#Files'InputRead2.txt"));
string letters;
while ((letters = Console.ReadLine()) != null)
writer.Close();
StreamWriter standardOutput = new StreamWriter(Console.OpenStandardOutput());
standardOutput.AutoFlush = true;
Console.SetOut(standardOutput);
Console.WriteLine("Sorted all letters alphabetically and wrote to output file.");
}
public static String alphabetize(string letters)
{
char[] alphabetize = letters.ToArray();
Array.Sort(alphabetize);
return new string(alphabetize);
}
}
}
您的问题在这里:
char[] alphabetize = letters.ToArray();
正如你得到的错误清楚地表明:
"string"不包含"ToArray"的定义,也没有扩展名接受"string"类型的第一个参数的方法"ToArray"可以是找到
此错误消息分为两部分。第一部分指出string
没有ToArray()
方法。由于letters
是string
,您不能在其上调用ToArray()
。请尝试以下操作:
char[] alphabetize = letters.ToCharArray();
错误的第二部分告诉您上下文中没有定义ToArray
扩展方法;然而,System.Linq
名称空间在接口IEnumerable<char>
上具有扩展方法ToArray<TSource>()
。string
实现IEnumerable<char>
,因此如果在文件中包含System.Linq
命名空间,则可以调用扩展方法ToArray<TSource>()
:
// at the top of your file with your other includes.
using System.Text;
// NOW you can do this:
char[] alphabetize = letters.ToArray();