1
var movieNext = new string[,]
{
    { "superhero", "action", "waltdisney", "bat"}, 
    {"superhero", "action", "marvel",""}, 
    {"history", "action", "malay", "" },
    {"malay", "novel", "", ""}, 
    {"history", "bat", "", ""}
};

上記のコードは、一連の映画のキーワードを格納する多次元配列です。配列の初期化に空白文字列を入れることなくこれを実装する方法はありますか?

たとえば、上記のコードでわかるように、配列を埋めるために空白文字列 "" を配置する必要があります。

4

3 に答える 3

2

代わりにジャグ配列を使用できます。

string[][] movieNext = new string[][] { { etc... } }.
于 2012-06-25T07:18:11.503 に答える
1

C# のジャグ配列を考慮することができます (ただし、多次元配列とは異なります)。

string[][] movieNext =  {
new [] { "superhero", "action", "waltdisney", "bat"},
new []  {"superhero", "action", "marvel"}, <and so on>
};

多次元配列に固執したい場合は、値を個別に初期化する必要があります。デフォルトでは、インデックス (i,j) のいずれにも文字列値を指定しない場合、null になります。

于 2012-06-25T07:22:53.130 に答える
0

2 次元配列は絶対に使用しないことをお勧めします。これらは API で実質的にサポートされておらず (2 次元配列をパラメーターとして受け入れるメソッドを見つけるのは難しいでしょう)、IEnumerable<T>または同様の十分にサポートされているインターフェイスにキャストすることはできません。そのため、実際には最もローカルなスコープでのみ使用できます。

代わりに、 にキャスト可能なものを使用することをお勧めしますIEnumerable<IEnumerable<string>>。あ、あとヒント。これをチェックしてください。具体的には、

Dictionary、または Add メソッドが複数のパラメーターを受け取るコレクションを初期化するには、次の例に示すように、パラメーターの各セットを中かっこで囲みます。

したがって、次のように動作します。

class Program
{
    static void Main(string[] args)
    {
        var d = new ManyList()
        {
            {"Hi", "Good", "People", "None", "Other"}
            {"Maybe", "Someone", "Else", "Whatever"}
        };
        Console.Read();
    }
}

class ManyList : List<string>
{
    public void Add(params string[] strs)
    {
        Console.WriteLine(string.Join(", ", strs));
    }
}

これは、構文を少しクリーンアップするのに役立つ場合があります。

于 2012-06-25T08:33:33.543 に答える