DOBON.NETプログラミング道掲示板
(現在 過去ログ1 を表示中)

[ 最新記事及び返信フォームをトピックトップへ ]

■32942 / inTopicNo.1)  配列の要素にある文字列 検索について
  
□投稿者/ ピンクフロイド 一般人(1回)-(2015/05/09(Sat) 08:34:22)
  • アイコン環境/言語:[win8 c#] 
    分類:[.NET] 

    String address1 = "福岡県福岡市" //◯
    String address2 = "宮崎県宮崎市◯◯" //◯
    String address3 = "東京都渋谷区道玄坂" //☓
    string[] kens = new string[] {"福岡県", "宮崎県", "佐賀県", "熊本県", "鹿児島県"};

    配列があります。各配列がaddress1,2,3に含まれているかどうか簡単に判定したいと思います。

    foreach(var ken in kens)
    {
    if(address1.Contain(ken))
    {
    MessageBox.Show(ken + "見つけた");
    break;
    }
    }

    とやればできるのはわかりますが、もっと簡単にやれる方法はないでしょうか?よろしくお願いします。
引用返信 削除キー/
■32943 / inTopicNo.2)  Re[1]: 配列の要素にある文字列 検索について
□投稿者/ Azulean 大御所(446回)-(2015/05/09(Sat) 09:45:16)
  • アイコン
    2015/05/09(Sat) 09:45:52 編集(投稿者)
    
    ■No32942に返信(ピンクフロイドさんの記事)
    > もっと簡単にやれる方法はないでしょうか?よろしくお願いします。
    
    address1 という変数に対してやりたいことを実現する基本ロジックは
    これ以上かんたんにはならなさそうです。
    もちろん、LINQ などを使えばコードの見た目は変わりますが、
    かんたんになっているわけではありません。
    
    string result = kens.FirstOrDefault(s => address1.Contains(s));
    if (result != null)
    {
      MessageBox.Show(result + "見つけた");
    }
    
    そうではなく、address1, address2, address3, ... と増えていった際に
    コードのコピペを避けたいと言うことであれば、メソッド(関数)として作るとか、
    address1〜3 も配列にするかでしょうか。

引用返信 削除キー/
■32948 / inTopicNo.3)  Re[2]: 配列の要素にある文字列 検索について
□投稿者/ ピンクフロイド 一般人(2回)-(2015/05/11(Mon) 01:43:55)
  • アイコンAzulean さん

    ご回答ありがとうございます。LINQで書いたことがないので、この書き方は勉強になります。
    ありがとうございました!
解決み!
引用返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/


- Child Tree -