.txt文件中有一个单词列表。我只想通过控制台显示以字母“ R”开头并保留字母顺序的单词。例: 'Rav' 'Ret' “ Ril”
static void Main(string[] args)
{
StreamReader objReader = new StreamReader(
@"C:\Users\thoma\Documents\Visual Studio 2019\Backup Files\data.txt");
string orden = "";
List<string> arrText = new List<string>();
while (orden != null)
{
orden = objReader.ReadLine();
if (orden != null) arrText.Add(orden);
}
objReader.Close();
foreach (string sOutput in arrText)
Console.WriteLine(sOutput);
Console.WriteLine("Order alphabetically ascending press 'a': ");
Console.WriteLine("Ordener descendant alphabetical press 'b': ");
instruccion = Console.ReadLine();
if (instruccion == "a"){
var resultList = arrText.Where(o => o.StartsWith("r"));
Console.WriteLine(resultList);
//string ascending = string.Format("{0}{1}{0}", "'", string.Join("','", arrText.OrderBy(x => x)));
}
Console.ReadLine();
}
}
}
此代码给我的结果是' System.Linq.Enumerable + WhereListIterator '
感谢您的帮助
答案 0 :(得分:0)
console.writeline只是打印对象ToString()方法,在这种情况下,该方法是对象的名称。
您需要枚举结果……也许像这样:
malloc
答案 1 :(得分:0)
您将可枚举的对象传递给Console.WriteLine:
Console.WriteLine(resultList);
但是您不想打印对象元素(容器),而是每个元素,因此需要迭代结果并打印每个元素:
foreach(var element in resultList)
Console.WriteLine(element);
答案 2 :(得分:0)
您必须迭代结果列表,就像您之前进行arrText
值一样。
static void Main(string[] args)
{
string fileName = @"C:\Users\thoma\Documents\Visual Studio 2019\Backup Files\data.txt";
var arrText = File.ReadLines(fileName).ToList();
foreach (string sOutput in arrText)
Console.WriteLine(sOutput);
Console.WriteLine("Order alphabetically ascending press 'a': ");
Console.WriteLine("Ordener descendant alphabetical press 'b': ");
var instruccion = Console.ReadLine();
IEnumerable<string> resultList;
if (instruccion == "a")
resultList = arrText.Where(o => o.ToLower().StartsWith("r")).OrderBy(o => o);
else if (instruccion == "b")
resultList = arrText.Where(o => o.ToLower().StartsWith("r")).OrderByDescending(o => o);
else
resultList = Enumerable.Empty<string>();
foreach(var item in resultList)
Console.WriteLine(item);
Console.ReadLine();
}