[過去ログ]
ふらっと C#,C♯,C#(初心者用) Part138 (1002レス)
ふらっと C#,C♯,C#(初心者用) Part138 http://mevius.5ch.net/test/read.cgi/tech/1528194762/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
719: デフォルトの名無しさん (ワッチョイ ff8a-H0hI) [sage] 2018/07/19(木) 00:34:23.22 ID:4jMcHp760 var myTable = new Dictionary<string, string>(); myTable.Add("Hokkaido", "Sapporo"); myTable.Add("Iwate", "Morioka"); myTable.Add("Miyagi", "Sendai"); //*1 var b = myTable.ContainsKey("Iwate"); if (b == true) { //*2 var s = myTable["Iwate"]; MessageBox.Show(s); } Dictionaryから特定の要素を探して、あれば表示するんですが この*1 *2 をLINQを使って1行にしたいんですが、どうすればいいですか? http://mevius.5ch.net/test/read.cgi/tech/1528194762/719
722: デフォルトの名無しさん (ワッチョイ ffd3-H0hI) [sage] 2018/07/19(木) 00:56:15.63 ID:OslD0F820 >>719 LINQ は集合に対して使うものなので、その例だと必要ない if (myTable.TryGetValue("Iwate", out var s)) { MessageBox.Show(s); } 対象が複数あるならこう var list = new[] { "Hokkaido", "Iwate", "Tokyo" }; var q = list .Where(x=> myTable.ContainsKey(x)) .Select(x=> myTable[x]); foreach (var s2 in q) { MessageBox.Show(s2); } http://mevius.5ch.net/test/read.cgi/tech/1528194762/722
723: デフォルトの名無しさん (アウアウウー Sadb-glQ9) [sage] 2018/07/19(木) 01:05:12.94 ID:EPnya5cJa >>719 LINQ全く関係ないけど比較的新しいC#ならこう書ける if (myTable.TryGetValue("Iwate", out var s)) MessageBox.Show(s); どうしても単一ステートメントにしたいなら myTable.TryGetValue("Iwate", out var s) ? MessageBox.Show(s) : DialogResult.None; とか (myTable.TryGetValue("Iwate", out var s) ? (Action<string>)(x => MessageBox.Show(x)) : (Action<string>)(_ => {}))(); とか書けなくはないけど俺ならこんなの書いてきやがったらコードレビューで突き返す http://mevius.5ch.net/test/read.cgi/tech/1528194762/723
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.030s