从文本文件写入文本以列出 c# Windows Phone
本文关键字:文本 Phone Windows 文件 | 更新日期: 2023-09-27 18:31:13
我是初学者,我不知道如何从文本文件写入以列出一些字符串。我的意思是我有一个文件:
A B
C D
E F
G H
...
我想把它写到列表中,但我不知道怎么做,也许它很简单,但我尝试了一些东西,但它不起作用。现在我有
List<List<string>> listaKolumn = new List<List<string>>();
var str = Application.GetResourceStream(new Uri("wzor.txt", UriKind.Relative));
StreamReader sreader = new StreamReader(str.Stream);
int x = 0;
while (!sreader.EndOfStream)
{
foreach (string k in sreader.ReadToEnd().Split(new char[] { ' ' }))
{
int j = 0;
foreach (string l in k.Split(new char[] {' '}))
{
if (listaKolumn.Count < k.Split(new char[] { ' '}).Length)
{
listaKolumn.Add(new List<string>());
}
//double temp2;
listaKolumn[j].Add(l);
j++;
}
}
}
但是有些不对劲。 我知道它应该怎么想,但我不太懂语言,我不会写它。
简而言之,我需要这个文本进入多维数组,例如数组[0][0] = 数组
这是一个传入您在问题中显示的文本文件并返回多维数组的方法。
public string[][] MultiArrayFromTextFile(string filePath)
{
return File.ReadLines(filePath).Select(s => s.Split(' ')).ToArray();
}
File.ReadLines(filePath) 返回文本文件中所有行的集合
.Select 是一种采用函数的扩展方法。
s=>s.Split(' ')
是传递给.Select
的函数,它将字符串s
拆分为所有空格并返回一个字符串数组。
.ToArray()
获取由.Select
创建的字符串数组的集合,并从中创建一个数组,因此您可以获得数组数组。
您可以像这样访问结果中的项目...
Console.WriteLine(results[1][1]); // returns 'D' ... so 2nd item of 2nd array
如果我
理解正确,这应该可以解决问题var listaKolumn = new List();
var sreader = new StreamReader(@"f:'wzor.txt");
string line;
while ((line = sreader.ReadLine())!=null)
{
listaKolumn.Add(line);
}
似乎没有任何理由让你有一个列表列表(List>) - 这会给你列表。
如果您需要拆分空格,您可以在 while-loop 中执行此操作,例如
foreach (var parts in line.Split(' '))
{
listaKolumn.Add(parts);
}
或者通过使用 LINQ
listaKolumn.AddRange(line.Split(' '));
希望这有帮助...
好吧 - 那我理解不对。找到了一种更智能的方法来将行读入集合。这应该让你至少非常接近:)
private static int LineCompare(string filepath1, string filepath2)
{
var result = 0;
var list = File.ReadLines(filepath1).ToArray();
var list2 = File.ReadLines(filepath2).ToArray();
for (var i = 0; i < list.Length; i++)
{
if (list[i].Equals(list2[i]))
result++;
}
return result;
}
或修剪后的版本:
private static int LineCompare(string filepath1, string filepath2)
{
var list = File.ReadLines(filepath1).ToArray();
var list2 = File.ReadLines(filepath2).ToArray();
return list.Where((t, i) => t.Equals(list2[i])).Count();
}
这当然会比较具有相同索引的行,因此如果您需要将 file1 中的第 5 行与 file2 中的第 2 行进行比较。你需要某种循环。