C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.90819 の関連記事表示

<< 0 >>
■90819  2次元配列の重複チェックの方法
□投稿者/ 河童 -(2019/04/24(Wed) 19:39:32)

    分類:[C#] 

    いつも大変お世話になっております。

    2次元配列に同じデータがないかどうか重複チェックをしたいです。

    match_listに同じデータがない場合に新規のデータを登録したいです。
    要素0から2までがすべて同じ場合は除外したいです。

    最初から2次元配列ではなくListにすればよいのですが、
    今回は2次元配列で重複チェックをどうしても行いたいです。

    わからないことは、2次元配列で
    ListのIndexOfメソッドのようなものがないでしょうか?

    よろしくお願いいたします。

    public string[,] match_list = new string[1000, 6];

    for (int i = 0; i < DataCount; i++)
    {

    //match_list[match_count, 0] = data_inp[i, 0];
    //match_list[match_count, 1] = data_inp[i, 1];
    //match_list[match_count, 2] = data_inp[i, 2];

    for (int j = match_list.GetLowerBound(1); j <= match_list.GetUpperBound(1); j++)
    {

    if ((match_list[j, 0] != data_inp[i, 0]) && (match_list[j, 1] != data_inp[i, 1]) && (match_list[j, 2] != data_inp[i, 2]))
    {
    match_list[match_count, 0] = data[i, 0];
    match_list[match_count, 1] = data[i, 1];
    match_list[match_count, 2] = data[i, 2];
    }
    }
    }
親記事 /過去ログ156より / 関連記事表示
削除チェック/

■90820  Re[1]: 2次元配列の重複チェックの方法
□投稿者/ kaina -(2019/04/24(Wed) 20:03:11)
記事No.90819 のレス /過去ログ156より / 関連記事表示
削除チェック/

■90821  Re[1]: 2次元配列の重複チェックの方法
□投稿者/ Hongliang -(2019/04/24(Wed) 20:26:55)
    > わからないことは、2次元配列で
    > ListのIndexOfメソッドのようなものがないでしょうか?
    標準ライブラリには存在しません。
記事No.90819 のレス /過去ログ156より / 関連記事表示
削除チェック/

■90833  Re[1]: 2次元配列の重複チェックの方法
□投稿者/ キングダム -(2019/04/28(Sun) 21:11:03)
    No90819 (河童 さん) に返信

    シンプルで良い実装だなって思いました
    よく使うようでしたらこれをメソッドに切り出して
    汎用化しちゃえばいんじゃないでしょうか

    仮に大量のデータを処理しなければならなくて
    少しでも計算量を改善したいんですってことなら
    どうするかなーと考えると、二次元配列をラッピングしたクラスを作って
    ジャグ配列を模倣することができればインデックスソートを使って
    match_listとdataをソートしてリストを比較するように先頭から順番に
    比較していくことができそうだなーとか

    match_listをソートして一列ずつ二分探索で範囲を絞り込んでいけば
    平衡三分探索木で実装したトライツリーをたどるのとほぼ同じ計算量になりそうだなーとか

    ハッシュテーブルを使うのもありかなーとか思いました
    あまり風呂敷広げすぎると畳めなくなるのでこのへんでやめようと思いますが
    そんな感じです

記事No.90819 のレス /過去ログ156より / 関連記事表示
削除チェック/

■90834  Re[2]: 2次元配列の重複チェックの方法
□投稿者/ キングダム -(2019/05/03(Fri) 03:10:53)
記事No.90819 のレス /過去ログ156より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -