将哪些字符串添加到List <t>?</t>的更好方法是什么?

时间:2015-01-26 08:14:51

标签: c#

我需要创建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"));
    }
}

我在这里需要构造函数。现在我认为 - 创建类只是为了把一些字符串放入列表中听起来错误。

也许这里有更简单的方法吗?

3 个答案:

答案 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"));
    }
}