我需要创建List whete T是一对字符串。
我试图以最明显的方式做到这一点:
public struct rule {
public string left, right;
}
class Program {
static void Main(string[] args) {
List<rule> rules = new List<rule>();
rules.Add(new rule("asd","asd"));
}
}
我在这里需要构造函数。现在我认为 - 创建类只是为了把一些字符串放入列表中听起来错误。
也许这里有更简单的方法吗?
答案 0 :(得分:2)
除了使用单独的类(无论如何你做错了),你可以使用Tuple<>
。虽然在这里使用KeyValuePair
也是一个选项,但逻辑上它不正确,因为它代表具有相应值的键,这是我不理解的。
List<Tuple<string, string>> rules = new List<Tuple<string, string>>();
rules.Add(Tuple.Create("aaa", "bbb"));
要修复课程方法,您可以执行以下操作:
public struct rule {
public string left, right;
public rule(string left, string right)
{
this.left = left;
this.right = right;
}
}
或使用自动属性:
public class rule
{
public string left {get;set;}
publci string right {get;set;}
}
然后在你的主要方法中:
rules.Add(new rule {right ="asd", left = "asd"});
答案 1 :(得分:1)
我没有像上面那样添加课程,但你可以使用KeyValuePair
答案 2 :(得分:1)
为什么不使用KeyValuePair?
class Program {
static void Main(string[] args) {
List<KeyValuePair<string, string>> rules = new List<KeyValuePair<string, string>>();
rules.Add(new KeyValuePair<string, string>("asd","asd"));
}
}