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,
        };
    }

次のような配列コンテンツでラムダ宣言を作成するためのバリアントはありますか?

(擬似コード、アイデアのみ!)

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

次のように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 に答える
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 に答える