好的,所以我在一个对象中有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.
}
答案 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.
}