[解決済み] タプルのリストを簡単に初期化する方法は?
2022-03-15 14:58:51
質問
好きなもの アップル . これを使えば、構造体やクラスを書かなくても、関連する情報をすばやくグループ化することができます。これは、非常にローカライズされたコードをリファクタリングする際に非常に便利です。
しかし、それらのリストを初期化するのは少し冗長な気がします。
var tupleList = new List<Tuple<int, string>>
{
Tuple.Create( 1, "cow" ),
Tuple.Create( 5, "chickens" ),
Tuple.Create( 1, "airplane" )
};
もっといい方法はないのでしょうか?のような解決策が欲しいです。 辞書のイニシャライザー .
Dictionary<int, string> students = new Dictionary<int, string>()
{
{ 111, "bleh" },
{ 112, "bloeh" },
{ 113, "blah" }
};
似たような構文にできないか?
どのように解決するのですか?
c# 7.0では、このようなことができます。
var tupleList = new List<(int, string)>
{
(1, "cow"),
(5, "chickens"),
(1, "airplane")
};
が必要ない場合は
List
でなく、配列だけなら可能です。
var tupleList = new(int, string)[]
{
(1, "cow"),
(5, "chickens"),
(1, "airplane")
};
そして、"Item1" と "Item2" が気に入らなければ、どうすればいい。
var tupleList = new List<(int Index, string Name)>
{
(1, "cow"),
(5, "chickens"),
(1, "airplane")
};
または配列の場合。
var tupleList = new (int Index, string Name)[]
{
(1, "cow"),
(5, "chickens"),
(1, "airplane")
};
ということができるようになります。
tupleList[0].Index
と
tupleList[0].Name
Framework 4.6.2以下
をインストールする必要があります。
System.ValueTuple
をNugetパッケージマネージャからダウンロードします。
フレームワーク4.7以上
フレームワークに組み込まれています。する
ない
インストール
System.ValueTuple
. 実際には、削除してください
と
をbinディレクトリから削除してください。
注:現実には、牛、鶏、飛行機のうちどれかを選ぶことはできないでしょう。本当に悩むだろうね。
関連
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] リストが空かどうかを確認するにはどうすればよいですか?
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] 割り当て後にリストが予期せず変更されました。その理由と防止策を教えてください。
-
[解決済み] リストを均等な大きさの塊に分割するには?
-
[解決済み] リストの最後の要素を取得する方法
-
[解決済み] リストの要素数を取得する方法
-
[解決済み] リストとタプルの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】コンパイルエラー「未割り当てのローカル変数を使用しています」が発生したのはなぜですか?
-
[解決済み】スクリプトクラスが見つからないので、スクリプトコンポーネントを追加できない?
-
[解決済み] 保護レベルによりアクセス不能になりました。
-
[解決済み】文字列が有効な DateTime " format dd/MM/yyyy " として認識されなかった。
-
[解決済み】ソケットのアドレス(プロトコル/ネットワークアドレス/ポート)は、通常1つしか使用できない?
-
[解決済み] [Solved] アセンブリ System.Web.Extensions dll はどこにありますか?
-
[解決済み】C# - パスに不正な文字がある場合
-
[解決済み】エラー「必要なフォーマルパラメータに対応する引数が与えられていない」を解決する?
-
[解決済み】URLから画像をダウンロードする方法
-
[解決済み】匿名クラスの汎用リスト