.txt文件中有一个单词列表。我只想在console中显示以字母“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‘
感谢您的帮助
发布于 2019-03-01 06:58:28
您必须迭代结果列表,就像前面对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();
}
发布于 2019-03-01 06:46:44
console.writeline只是打印对象的ToString()方法,在本例中是对象的名称。
您需要枚举结果...可能是这样的:
Console.WriteLine(string.Join(",", resultList))
发布于 2019-03-01 06:47:24
将一个可枚举对象传递给Console.WriteLine:
Console.WriteLine(resultList);
但是您不想打印对象元素(容器),而是打印每个元素,因此您需要迭代结果并打印每个元素:
foreach(var element in resultList)
Console.WriteLine(element);
https://stackoverflow.com/questions/54935400
复制相似问题