gpt4 book ai didi

c# 网络适配器列表

转载 作者:太空狗 更新时间:2023-10-29 20:00:04 26 4
gpt4 key购买 nike

我有代码,它使用 System.NetSystem.Net.NetworkInformation 引用,它生成我的网络连接名称列表。

一切似乎都很好并且可以正常工作,但是当我对这段代码进行分类,并将值导出到 listbox1 items add 时,我只有一个网络连接名称,但实际上我有四个。

我该如何解决这个问题?

private void button1_Click(object sender, EventArgs e)
{
Adapters obj = new Adapters();
var value = obj.net_adapters();
listBox1.Items.Add(value);
}

public class Adapters
{
public string net_adapters()
{
string value = string.Empty;
foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
{
value = nic.Name;
}
return value;
}
}

最佳答案

我会修改您当前拥有的代码:

public string net_adapters() 
{
string value = string.Empty;
foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
{
// bug in your original code right here is `=`
// you proably meant to do something like value += ", " + nic.Name
// which would not work well with listbox Items collection
value = nic.Name;
}
return value;
}

变成这样:

public System.Collections.Generic.List<String> net_adapters() 
{
List<String> values = new List<String>();
foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
{
values.Add(nic.Name);
}
return values;
}

一个更奇特的方法(虽然它可能并不重要,因为 GetAllNetworkIntefaces 可能会阻塞直到它有一个完整的列表)是使用 IEnumerable<T>yield return :

public IEnumerable<String> net_adapters() 
{
foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
{
yield return nic.Name;
}
yield break;
}

无论哪种方式,您都可以像这样使用它:

var obj = new Adapters();    
var values = obj.net_adapters();
listBox1.ItemsSource = values;

(附带说明,我建议您使用 .NET Framework Naming Guide )

关于c# 网络适配器列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11677815/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com