0

コードに小さな問題があります。テキスト ファイルを読み込んで、ユーザー入力からの一致を表示しています。唯一の問題は、大文字と小文字が区別されることです。たとえば、Steve の S が小文字の場合、テキスト ファイルでは大文字であるため、一致が表示されません。これが私が使用しているコードです。

string name;

lstResult.Items.Clear();

using (StreamReader sr = File.OpenText("../Name_Check.txt"))
{                
    while ((name = sr.ReadLine()) != null)
    {                    
        if (txtInput.Text == name)
        {                       
            lstResult.Items.Add(name);
4

3 に答える 3

4

これを試して

 txtInput.Text.Equals(name, StringComparision.OrdinalIgnoreCase)

文化によっては、最後のオプションを変更する必要がある場合があります。

于 2013-05-28T12:20:51.653 に答える
2

String.Equals(string, string, StringComparison)代わりに使用できます==

あなたの例では、これはうまくいくはずです:

if (string.Equals(txtInput.Text, name, StringComparison.CurrentCultureIgnoreCase))

(代わりにif (txtInput.Text == name))

これは、現在のスレッドの現在のカルチャ設定を使用することを前提としています。

または、Daniel White が示した同様の string.Equals() を使用できます。

于 2013-05-28T12:20:45.123 に答える
0

これはうまくいくはずです(テストされていません!)

string name;
lstResult.Items.Clear();
using (StreamReader sr = File.OpenText("../Name_Check.txt"))
{
    while ((name = sr.ReadLine()) != null)
    {
        if (txtInput.Text.Equals(name, StringComparison.InvariantCultureIgnoreCase))
        {
            lstResult.Items.Add(name);
于 2013-05-28T12:22:54.333 に答える