我正在尝试读取一个文本文件,其中包含二维数组中的代理。
文本文件如下所示:
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>
并且不会一次读取整个文件。在这种情况下,我可能会选择放弃二维数组并创建一个简单的类(将其称为 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]);
}
关于c# 将文本文件添加到二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41302037/