我的表格的很多标题都有很多字符串,例如:
private readonly string headerOne = translateIfNeeded("headerOne");
private readonly string headerTwo = translateIfNeeded("headerTwo");
private readonly string headerThree = translateIfNeeded("headerThree");
private readonly string headerFour = translateIfNeeded("headerFour");
大约有30个。
我可以简单地将它们分组到一个数组中,以便稍后可以轻松地迭代它们吗?试图将以下内容放在我的字符串下面,但它不会让我;
private readonly string[] headers = { headerOne, headerTwo };
private readonly string[] headers = new string[]{ headerOne, headerTwo };
说“一个字段初始值设定项不能引用非静态字段[...] headerOne”。
答案 0 :(得分:1)
您可以使用Dictionary<int, string>
或Dictionary<string, string>
:
Dictionary<string, string> headers = new Dictionary<string, string>();
headers.Add("headerOne", translateIfNeeded("headerOne"));
headers.Add("headerTwo", translateIfNeeded("headerTwo"));
headers.Add("headerThree", translateIfNeeded("headerThree"));
headers.Add("headerFour", translateIfNeeded("headerFour"));
您可以通过密钥迭代或(标准方式)访问该值:
string headerTwo = headers["headerTwo"];
如果你需要一个只读字典,那么从版本4.5开始就是
答案 1 :(得分:0)
根据Static readonly string arrays,即使它使用静态:
public readonly ReadOnlyCollection<string> headers = new ReadOnlyCollection<string>(
new string[] {
headerOne,
headerTwo,
headerThree,
}
);
供参考:ReadOnlyCollection(T) Class (System.Collections.ObjectModel)和C# ReadOnlyCollection Tips - Dot Net Perls
答案 2 :(得分:0)
您可以定义一个List添加所有标题并轻松迭代它们,简单示例:
List<string> headersList = new List<string>();
headersList.AddRange(new string[] { headerOne, headerTwo, headerThree, headerFour });
foreach (string header in headersList)
{
Console.WriteLine(header);
}
Console.ReadLine();