13

一部の関数は引数として配列のみを受け入れますが、単一のオブジェクトをそれらに割り当てたいとします。たとえば、主キー列を割り当てるには、次のようDataTableにします。

DataColumn[] time = new DataColumn[1];
time[0] = timeslots.Columns["time"];
timeslots.PrimaryKey = time;

これは面倒に思えるので、基本的にはDataColumna をDataColumn[1] arrayに変換するだけで済みます。それを行う簡単な方法はありますか?

4

4 に答える 4

23

配列初期化構文を使用して記述できます。

timeslots.PrimaryKey = new[] { timeslots.Columns["time"] }

これは、型推論を使用して配列の型を推論し、timeslots.Columns["time"] が返す型の配列を作成します。

配列を別の型 (スーパータイプなど) にしたい場合は、それを明示的にすることもできます

timeslots.PrimaryKey = new DataColumn[] { timeslots.Columns["time"] }
于 2013-09-19T03:47:33.610 に答える
7

配列初期化子を使用して 1 行で記述することもできます。

timeslots.PrimaryKey = new DataColumn[] { timeslots.Columns["time"] };

これをチェックしてください:すべての可能な C# 配列初期化構文

于 2013-09-19T03:47:23.913 に答える
2
timeslots.PrimaryKey = new DataColumn[] { timeslots.Columns["time"] };
于 2013-09-19T03:47:53.747 に答える
2

上記の回答に基づいて、この拡張メソッドを作成しました。これは非常に役立ち、多くの入力を節約できます。

/// <summary>
/// Convert the provided object into an array 
/// with the object as its single item.
/// </summary>
/// <typeparam name="T">The type of the object that will 
/// be provided and contained in the returned array.</typeparam>
/// <param name="withSingleItem">The item which will be 
/// contained in the return array as its single item.</param>
/// <returns>An array with <paramref name="withSingleItem"/> 
/// as its single item.</returns>
public static T[] ToArray<T>(this T withSingleItem) => new[] { withSingleItem };
于 2019-05-15T13:51:28.930 に答える