0

我有这样一段代码:

    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 声明,例如:

(伪代码,仅供参考!)

wallpapers = new string[] { ( () => { for i = 1 till 4 -> suffix + i + extension; } ) }

有什么建议么?

4

5 回答 5

1
string[] wallpapers = Enumerable.Range(1, 4)
                                .Select(i => suffix + i + extenstion)
                                .ToArray();
于 2012-09-05T09:52:59.243 回答
0
string template = "wallpapers\\{0}.jpg";

string[] wallpapers =
    Enumerable.Range(1, 4)
        .Select(i => string.Format(template, i))
        .ToArray();
于 2012-09-05T10:02:23.310 回答
0

你可以像这样使用 Linq 来做到这一点:

wallpapers =
    Enumerable.Range(1, 4)
    .Select(i => String.Concat(suffix, i, extenstion))
    .ToArray();
于 2012-09-05T09:54:16.763 回答
0

Enumerable.Range(1, 10).Select(a => "string" + a).ToArray();

于 2012-09-05T09:54:34.843 回答
0

不,那里没有。如果您可以在运行时生成数组,请使用

Enumerable.Range(1, 4).Select(i => string.Format("{0}{1}{2}", suffix, i, extension)).ToArray();

PS你的代码无论如何都不能工作,你不能添加intstring.

于 2012-09-05T09:54:39.180 回答