[英]c# add textfile to 2 dimensional array
我正在嘗試讀取一個文本文件,其中包含一個二維數組的代理。
文本文件如下所示:
00.00.00.00:80
00.00.00.00:80
00.00.00.00:80
00.00.00.00:80
00.00.00.00:80
我怎么能從端口分離ip?`
所以我的數組看起來如下:
[00.00.00.00] [80]
當前代碼:
public void readProxyList(string FileName)
{
using (StreamReader sr = new StreamReader(FileName, Encoding.Default))
{
string text = sr.ReadToEnd();
string[] lines = text.Split('\r');
foreach (string s in lines)
{
}
}
}
如果您不希望文件太大,可以使用File.ReadAllLines讀取每一行。 然后拆分,只需使用帶有':'的String.Split作為您的令牌。
例:
var lines = File.ReadAllLines(FileName));
var array = new string[lines.Length,2];
for(int i=0; i < lines.Length; i++)
{
var temp = lines[i].Split(':');
array[i,0] = temp[0];
array[i,1] = temp[1];
}
編輯
如果您希望文件可能很大,而不是使用ReadAllLines
,則可以使用File.ReadLines 。 此方法返回IEnumerable<string>
並且不會立即讀取整個文件。 在這種情況下,我可能會選擇遠離2d數組並創建一個簡單的類(稱之為IpAndPort或類似的東西)並創建一個列表。
例:
public sealed class IpAndPort
{
public string Ip { get; private set; }
public string Port { get; private set; }
public IpAndPort (string ip, string port)
{
Ip = ip;
Port = port;
}
}
var list = new List<IpAndPort>();
foreach(var line in File.ReadLines(FileName))
{
var temp = line.Split(':');
list.Add(new IpAndPort(temp[0], temp[1]);
}
試試這個:
public IEnumerable<string> GetProxyList(string FileName)
{
string[] allLines = File.ReadAllLines(FileName);
var result = new List<string>(allLines.Length);
foreach (string line in allLines)
{
var splittedLine = line.Split(':');
result.Add($"[{splittedLine[0]}][{splittedLine[1]}]");
}
return result;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.