我有一个外部文本文件,里面有数字。比如用空格分隔的4 54 12 32。我希望能够阅读所有的数字并将它们添加到列表中。
static void Main(string[] args)
{
List<int> numbers;
numbers = new List<int>();
StreamReader file = new StreamReader("C:\text.txt");
while (!file.EndOfStream)
{
string line = file.ReadLine();
Console.Write(line + " ");
}
}
ReadLine读取整行,所以我不能将单个数字分开并将其转换为int,我尝试过读取每个数字的字符代码,而不是数字本身。
尝试按空格拆分行
string [] numbers = file.ReadLine().Split(new char[]{' '},
StringSplitOptions.RemoveEmptyEntries);
字符串对象的Split方法(http://msdn.microsoft.com/fr-fr/library/System.String.Split%28v=vs.110%29.aspx)就是你要找的。
这个方法应该会对您有所帮助。
public static IEnumerable<int> ReadInts(string path)
{
var txt = File.ReadAllText(path);
return Regex.Split(txt, @"s+").Select(x => int.Parse(x));
}
您可以使用File.ReadAllText
方法:
var numbers = File.ReadAllText("C:\text.txt")
.Split()
.Where(x => x.All(char.IsDigit))
.Select(int.Parse)
.ToList();