2012-04-02 20 views
1

私がしようとしていることはかなりシンプルです。ユーザーは文字列を入力します。プログラムは、そのテキスト文字列に存在する母音の数をチェックしてカウントします。2つの配列の値を比較する

2つの配列を確認して一致するものがあるかどうかを確認するにはどうすればよいですか?

ありがとうございます。

答えて

3

あなたはこのためにArray.IndexOf()を使用することができます。

if (Array.IndexOf(vowels, i) >= 0) 
{ 
    // the character is present 
} 
1

私はLINQを使用します。

arr.Select(c => vowels.Contains(c)); 

あなたの代わりにSelectCountメソッドを使用できる文字の数を取得するために。 母音があるかどうかだけを知りたい場合は、Anyを使用します。最初の一致が見つかるとすぐに終了します。

+0

のC#を学ぶ場合、私は初心者の段階に過ぎないんだので、私は今のようLINQでの知識がありません。しかし、その情報に感謝します。ちゃんと覚えておきますよ。それはより簡単に思える。 – Isuru

6
arr.Any(p => vowels.Contains(p)); 

更新: 使用できる一致の数を計算するには、次のように入力します。あなたは何ができるか

int count = arr.Where(p => vowels.Contains(p)).Count(); 
+0

_count_はどこですか? –

+0

質問数に質問はありませんが、int count = arr.Where(p => vowels.Contains(p))を使用すると分かります。カウント(); – daryal

+0

質問は数を求める:**母音の数をチェックして数える** – fearofawhackplanet

0

は母音のための文字のリストを作成し、.containsメソッドを使用することです。

1

はこれを試してみてください:

if (vowels.Contains(i)) 
{ 
    counter++; 
} 
0

あなたはそのためにLINQを使用することができます!

bool anyMatches = arr.Intersect(vowels).Any(); 

か、あなたは試合をしたい場合:

var matches = arr.Intersect(vowels).ToList(); 

EDIT:

または一致の正確な数カウントする:

int count = arr.Count(x => vowels.Contains(x)); 
+0

母音の総数ではなく、母音の数を数える( "woot"が 'o'を生成する) –

+0

?? –

+0

はい、表示されたコードを見てください。arrの各文字について、他の配列の一致をチェックしたいと考えています。 –

2

を単純に2 foreachを使用ループ

foreach(var i in arr) 
    { 
     foreach(var j in vowels) 
     { 
      if(i==j) 
      { 
       counter++; 
      } 
     } 
    } 
0

使用このLINQのクエリ

var q=from c in s 
    where vowels.Contains(c) 
    group c by c into g 
    select new {vowel=g.Key, count=g.Count()}; 

あなたは、例えば

を反復して、内容で好きなものを行うことができます

foreach (var x in q) { 
    Console.WriteLine(String.Format("{0} : {1}",x.vowel,x;count)); 
} 
0
Hash<char> vowels = //initialize to vowels. 

foreach(char c in input) 
{ 
    if(hashset(vowels) contains the character) 
     increment counter. 
} 

return counter. 
関連する問題