[英]Write text from text file to list c# windows phone
我是初學者,我不知道如何從文本文件中寫出一些字符串。 我的意思是我有一個文件:
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++;
}
}
}
但是出了點問題。 我知道應該只記住它,但是我不太了解語言,所以我不會寫。
總之,我需要將此文本寫入多維數組,例如array [0] [0] = A array [0] [1] = B array [1] [0] = C array [1] [1] = D,依此類推上
這是一種傳遞您在問題中顯示的文本文件並返回多維數組的方法。
public string[][] MultiArrayFromTextFile(string filePath)
{
return File.ReadLines(filePath).Select(s => s.Split(' ')).ToArray();
}
File.ReadLines(filePath)返回文本文件中所有行的集合
.Select是具有功能的擴展方法。
s=>s.Split(' ')
是傳遞給.Select
的函數,該函數將字符串s
s=>s.Split(' ')
為所有空格並返回字符串數組。
.ToArray()
接受由.Select
創建的字符串數組的集合,並.ToArray()
創建一個數組,因此可以得到數組數組。
您可以像這樣訪問結果中的項目...
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循環中進行拆分,例如
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行進行比較。 您將需要某種循環。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.