我正在制作一个应用程序,我几乎完成了。我只需要知道如何流式读取 txt 列表和 foreach 行,添加数字 0-x(x 将是用户在文本框中输入的数字)并将其添加到列表中。所以基本上,它会是这样的
您导入一个列表,其中一行是“dog”,另一行是“cat”,第三行是“fish”。您在文本框中键入“5”。该应用程序将所有这些都放入一个列表中:
狗1 狗2 狗3 狗4 狗5 猫1 猫2 三类 第四类 猫5 鱼1 鱼2 鱼3 鱼4 鱼5
谢谢!
下面的代码应该适合你。我假设您可以count
自己获得价值。
var animals = File.ReadAllLines("yourFile.txt"); //new[] {"dog", "cat", "fish"};
var count = 5;
var merged =
from a in animals
from n in Enumerable.Range(1, count)
select a + n;
foreach (var m in merged)
Console.WriteLine(m); //act on each however you want
您可以使用File.ReadAllLines
. 这为您提供了一个可以迭代的数组foreach
。
在这个foreach
循环中,您可以执行另一个循环,从 1 到用户输入的数字。int.Parse
可以方便地将用户输入的字符串转换为 C# 可以使用的数字。对于实际的迭代,您可以使用for
循环。
然后,您可以将每个项目添加到列表中。
这里有一个很好的例子来读取文件流中的每一行:http: //msdn.microsoft.com/en-us/library/e4y2dch9.aspx
private List<string> GetThings(string fileName, int count)
{
string[] lines = File.ReadAllLines(fileName);
List<string> result = new List<string>();
foreach (string item in lines)
{
for (int i = 1; i <= count; i++)
result.Add(item + i.ToString());
}
return result;
}
string[] inputList = File.ReadAllLines("yourFile.txt");
List<String> listOfThings = new List<String>();
foreach (string i in inputList)
{
for (int k = 0; k < 5; k++)
{
listOfThings.Add(i + " " + k.ToString());
}
}
然后,您可以像这样打印出列表:
foreach (string outp in listOfThings)
{
Console.WriteLine(outp);
}
输出:
some value 0
some value 1
some value 2
some value 3
some value 4
some other value 0
some other value 1
some other value 2
some other value 3
some other value 4