プロが教えるわが家の防犯対策術!

たびたびの質問失礼します。
C#の配列やリストを勉強中していますが、まだまだ初心者でわからないことだらけで困っております。
今回は、リストを作り、その中にユーザーが入力したものがあるかどうか、あればその情報を出力するというコードを書きたいと思っています。

例えば、
リストに「りんご、いちご、なし、ぶどう」があったとします。
画面に
「好きな果物は何ですか。
果物の名前を入力してください : 」と出力され、ユーザーが果物名を記入、あれば
ユーザー:「りんご」
出力:「出荷量が一番多いのは青森」

ユーザーが書いたものがなければ、「リストにありませんでした。」と出力したいです。



いろいろとインターネットで検索したのですが、リストに要素があるかどうかを検索し、出力する方法がわかりませんでした。。。
Containsを使って書いてみたのですが、リストにあるはずの果物を検索しても、「リストにありませんでした」と出てきてしまいます。


どのようにかけば、検索できるのでしょうか。
ご教授いただけると嬉しいです。よろしくお願いします。

今書いたコードはこれです:

List<string> kudamono = new List <string>{};
kudamono.Add("ringo");
kudamono.Add("ichigo");
kudamono.Add("nashi");
kudamono.Add("meron");

kudamono.sort();

Console.WriteLine("");
string like = Console.ReadLine();

if(kudamono.Contains(like)==true)
{
Console.wrteLine(kudamono);
}
else
{Console.WriteLine("リストにありませんでした。);
}

A 回答 (2件)

>いろいろとインターネットで検索したのですが、リストに要素があるかどうかを検索し、出力する方法がわかりませんでした。

。。
>Containsを使って書いてみたのですが、リストにあるはずの果物を検索しても、「リストにありませんでした」と出てきてしまいます。

どのように入力してみたんでしょうか?
コマンドプロンプトでの実行結果をコピペして貼ってみてください。
# コマンドプロンプトの画面上で右クリック、「範囲選択」でドラッグしてコピーできるかと。
http://www.atmarkit.co.jp/fwin2k/win2ktips/609cl …

>Console.wrteLine(kudamono);

で表示されるのは入力したものではありませんが、そのあたりはOKなんですかね?
# WriteLine()になっていないのはご愛敬?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
その後、foreach文に変えてみたところ何とか読み取れるようになりました。

consoleについては、普通に書き間違えていました!すみません。ご指摘ありがとうございました。

お礼日時:2016/06/10 17:25

なんか考え方を間違ってると思われます。

そもそも構文エラーになるはず。。

一応、.Containsで変数like がListに含まれているかどうかは分かりますが
それがListの何番目なのかは分かりません。


// Listのkudamonoの中からaという範囲変数を宣言、
// ※範囲変数a は変数like と一致すること。
// ※の条件を満たしたaを結果としてvarMatch に格納する
var varMatch = from a in kudamono where( a == like ) select a;

// varMatch からすべての要素を取り出す。取り出し先はstring型のansに入れる
foreach (string ans in varMatch )
{
Console.WriteLine(ans);
}


あとは、ringo以外にaoringo とかも含ませるならLike検索くらいでしょうか。
var varMatch2 = from a in kudamono.Where(item => item.Contains(like)) select a;
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。Containsでできなくてなぜだろうとわからなかったのですが、教えていただいたようなforeachでやってみたら、何とかできました。

だんだんと頭がこんがらがってきたので、もう一度最初の方から勉強しなおそうと思います。

お礼日時:2016/06/10 17:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!