c# 将文本文件添加到二维数组

标签 c# arrays

我正在尝试读取一个文本文件,其中包含二维数组中的代理。

文本文件如下所示:

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/

相关文章:

c# - 我是否需要持有至少 1 个 View 模型来处理我的所有 View ?

c# - dllimport 和 getProcAddress 之间的区别

JavaScript - 数组的逻辑问题

Python 将矩阵行排序为行梯形......排序

c# - Google Protocol Buffers 序列化挂起写入 1GB+ 数据

c# - 是否可以通过一个连接在 .Net 中实现异步 Web 服务调用?

c# - DataGridView 单元格对齐不起作用

javascript - 使用nodejs查找对象数组中的特定键值

javascript - 使两个数组具有相同值的最小数字更改次数

Java:如何在arraylist中写入计算数据?