将txt文件读入元组
Reading txt file into a tuple
如果我的 txt 文件包含与这些类似的行:
1.1, 0.1836856, 5.6
3.3, -5.5, 43.44
-0.38162, 6.636666E-08, 3.1
1.01516E-07, 0.3695395, 1.5
如何将文件读入元组?
var reader = new StreamReader(File.OpenRead(@"C:\MyFile.txt"));
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var values = line.Split(',');
var val1 = decimal.Parse(values[0], System.Globalization.NumberStyles.Float);
var val2 = decimal.Parse(values[1], System.Globalization.NumberStyles.Float);
var val3 = values[2];
Tuple<decimal, decimal, string> myTuple = Tuple.Create<decimal, decimal, string>(val1, val2, val3);
}
你基本上在那里..只需将每个元组添加到列表中,这样它们就不会在每次迭代结束时丢失。
在 while
循环之外和之前定义一个列表:
var results = new List<Tuple<decimal, decimal, string>>();
然后在循环内添加每个新的 Tuple 实例:
results.Add(Tuple.Create(val1, val2, val3));
您也可以考虑将 File.OpenRead()
替换为 File.ReadLines()
。它会一次性打开您的文件,读取其中的所有行,然后关闭它。
这里有一些看起来与您拥有的完全不同的东西...只是把它扔掉了。它是否更清晰取决于您。它使用 LINQ。
它读取文件,然后拆分并为每一行创建一个Tuple
,生成相同的列表。
var results = (from line in File.ReadLines(@"C:\MyFile.txt")
let values = line.Split(',')
select Tuple.Create(decimal.Parse(values[0], NumberStyles.Float),
decimal.Parse(values[1], NumberStyles.Float),
values[2])).ToList();
如果我的 txt 文件包含与这些类似的行:
1.1, 0.1836856, 5.6
3.3, -5.5, 43.44
-0.38162, 6.636666E-08, 3.1
1.01516E-07, 0.3695395, 1.5
如何将文件读入元组?
var reader = new StreamReader(File.OpenRead(@"C:\MyFile.txt"));
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var values = line.Split(',');
var val1 = decimal.Parse(values[0], System.Globalization.NumberStyles.Float);
var val2 = decimal.Parse(values[1], System.Globalization.NumberStyles.Float);
var val3 = values[2];
Tuple<decimal, decimal, string> myTuple = Tuple.Create<decimal, decimal, string>(val1, val2, val3);
}
你基本上在那里..只需将每个元组添加到列表中,这样它们就不会在每次迭代结束时丢失。
在 while
循环之外和之前定义一个列表:
var results = new List<Tuple<decimal, decimal, string>>();
然后在循环内添加每个新的 Tuple 实例:
results.Add(Tuple.Create(val1, val2, val3));
您也可以考虑将 File.OpenRead()
替换为 File.ReadLines()
。它会一次性打开您的文件,读取其中的所有行,然后关闭它。
这里有一些看起来与您拥有的完全不同的东西...只是把它扔掉了。它是否更清晰取决于您。它使用 LINQ。
它读取文件,然后拆分并为每一行创建一个Tuple
,生成相同的列表。
var results = (from line in File.ReadLines(@"C:\MyFile.txt")
let values = line.Split(',')
select Tuple.Create(decimal.Parse(values[0], NumberStyles.Float),
decimal.Parse(values[1], NumberStyles.Float),
values[2])).ToList();