创建一个返回字符串列表的方法?

时间:2014-03-13 17:16:28

标签: c# methods asp.net-4.0

好的,所以我在一个对象中有List个字符串可用。但是对象中不仅仅包含那些字符串。但我只需要将这些字符串作为List<string>传递给方法。如何只获得这些字符串?

例如,我有一个以下对象_Home

有大量的信息可以获得。但我只想要以下字符串:

_Home.String1
_Home.String2
_Home.String3
_Home.String4
_Home.String5
_Home.String6

除了创建new List<string>()并将每个值分别添加到其中之外,有没有办法为此创建一个方法来执行此类操作?

List<String> theStrings = CreateStringList(_Home.String1, _Home.String2, _Home.String3, _Home.String4, _Home.String5, _Home.String6);

而不仅仅是将theStrings传递给另一种方法,例如:LoadData(theStrings)

我希望能够使用此List,如下所示:

private void LoadData(List<string> theStrings)
{
    theStrings.String1;
    theStrings.String2;
    // etc. etc.
}

3 个答案:

答案 0 :(得分:2)

我可能在这里遗漏了一些东西,但你说的是你想要的东西:

List theStrings = CreateStringList(_Home.String1, 
_Home.String2, _Home.String3, _Home.String4, _Home.String5, _Home.String6);

可能可以在不需要其他功能的情况下说明......这就是我的想法:

var theStrings = new List<string>{_Home.String1, _Home.String2, 
_Home.String3, _Home.String4, _Home.String5, _Home.String6};

答案 1 :(得分:2)

您可以按如下方式创建List<string>

var theStrings = new List<string>{ _Home.String1, 
                                   _Home.String2,
                                    _Home.String3,  
                                    _Home.String4,  
                                    _Home.String5
                          }; 

更新:

当传递给另一个方法时,这将为您提供一个没有名称的字符串列表。如果需要按名称访问每个字符串,可以使用字典,但这会使整个事情变得更复杂一些。

如果您知道提供字符串的顺序,您可以通过索引号访问它们(我从您的评论中了解到这是可以接受的吗?):

public void YourMethod(List<string> theStringsParam){
    var firstString = theStringsParam[0];
    var secondString = theStringsParam[1];
    // etc...
}

答案 2 :(得分:2)

也许Hashtable会更好用吗?

类似的东西:

Hashtable theStrings = new Hashtable();
theStrings.Add("String1", _Home.String1);
theStrings.Add("String2", _Home.String2);

或使用集合初始值设定项:

Hashtable theStrings = new Hashtable() {
    {"String1", "String1"},
    {"String2", "String2"}
};

然后你可以像这样使用它:

private void LoadData(Hashtable theStrings)
{
    theStrings["String1"];
    theStrings["String2"];
    // etc. etc.
}