如何在 C# 中以 KeyValuePair 的形式检索存储在 ist 中的对象?
How do i retrieve an Object stored in a ist in the form of KeyValuePair in C#?
我有以下 List
和 KeyValuePair
作为数据。
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;
我有以下 List
和 KeyValuePair
作为数据。
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;