如何在 C# 中以 KeyValuePair 的形式检索存储在 ist 中的对象?

How do i retrieve an Object stored in a ist in the form of KeyValuePair in C#?

我有以下 ListKeyValuePair 作为数据。

using SerialPort as PORT
List<KeyValuePair<string, PORT>> myPortList = new List<KeyValuePair<string, PORT>>();

我已按以下方式将元素添加到 list

PORT sp1 = new PORT("COM1", 9200, Parity.None, 8, StopBits.One);
PORT sp2 = new PORT("COM4", 9200, Parity.None, 8, StopBits.One);
myPortList.Add(new KeyValuePair<string,PORT>("COM1",sp1));
myPortList.Add(new KeyValuePair<string,PORT>("COM4",sp2));

如何使用密钥获取存储在列表中的 SerialPort 对象?
例如:
需要使用 key "COM4"list 我的端口列表 ?

您可以为此使用 Linq:

myPortList.FirstOrDefault(x => x.Key == "COM4").Value

使用字典而不是 KeyValuePair 项的列表可能更容易,这样您就可以更直接地访问这些项。

您可以使用 Linq:

myPortList.Fist(kp => kp.Key.Equals("COM4"));

如果可以,请改用Dictionary,从中获取元素会更容易。

Dictionary 的示例:

Dictionary<string, PORT> myPortDict = new Dictionary<string, PORT>();

PORT sp2 = new PORT("COM4", 9200, Parity.None, 8, StopBits.One);
myPortDict.Add("COM4",sp1);

//then to retrive:

dc.TryGetValue("COM4", out PORT myPort);

//then use myPort

您可以使用 LINQ。试试这个,也许对你有帮助。

var result = myPortList.Find(x => x.Key == "COM4");
var value = result.Value;