我有这样的代码:
string suffix = "wallpapers\\";
string extenstion = ".jpg";
string[] wallpapers;
.....
void SetWallPapers()
{
wallpapers = new string[] {
suffix + "1" + extenstion,
suffix + "2" + extenstion,
suffix + "3" + extenstion,
suffix + "4" + extenstion,
};
}
是否有任何变体可以在数组内容中进行lambda-declaretion,如:
(伪代码,只有想法!)
wallpapers = new string[] { ( () => { for i = 1 till 4 -> suffix + i + extension; } ) }
有什么建议吗?
答案 0 :(得分:1)
string[] wallpapers = Enumerable.Range(1, 4)
.Select(i => suffix + i + extenstion)
.ToArray();
答案 1 :(得分:0)
你可以像这样使用Linq:
wallpapers =
Enumerable.Range(1, 4)
.Select(i => String.Concat(suffix, i, extenstion))
.ToArray();
答案 2 :(得分:0)
Enumerable.Range(1, 10).Select(a => "string" + a).ToArray();
答案 3 :(得分:0)
不,没有。如果您可以在运行时生成阵列,请使用
Enumerable.Range(1, 4).Select(i => string.Format("{0}{1}{2}", suffix, i, extension)).ToArray();
PS您的代码无论如何都无法使用,您无法将int
添加到string
。
答案 4 :(得分:0)
string template = "wallpapers\\{0}.jpg";
string[] wallpapers =
Enumerable.Range(1, 4)
.Select(i => string.Format(template, i))
.ToArray();