タグ

ブックマーク / dobon.net (12)

  • 配列やコレクション内に指定された要素があるか調べる

    配列やコレクション内に指定された要素があるか調べるここでは、配列やコレクションの中に指定された値と同じ要素があるか調べる方法を紹介します。また、指定した条件にあった要素があるかを調べる方法も紹介します。 ここで紹介する方法はその要素が存在するかだけを調べ、その位置(インデックス)までは調べません。位置を調べる方法は、「配列やコレクション内に指定された要素があるか調べ、その位置を知る」で説明しています。 IndexOfメソッドを使用する方法IndexOfメソッドは配列やコレクション内での要素の位置を調べるメソッドですが、これが 0 以上の値を返すかによってその要素が存在しているかを調べることができます。 IndexOfメソッドは、EqualsメソッドがTrueを返す要素を探します。順次検索のため、O(n)操作です。 以下の例では、String型の配列内に指定した文字列の要素が存在しているかを

    配列やコレクション内に指定された要素があるか調べる
    chago
    chago 2014/02/06
    IEqualityComparerを利用するとき…うーん、Hashの役割がいまいちつかめない
  • 自作クラスのEqualsメソッドをオーバーライドして、等価の定義を変更する

    自作クラスのEqualsメソッドをオーバーライドして、等価の定義を変更するEqualsメソッドは、2つのオブジェクトが等しいかを判断するために使われ、等しければtrueを、そうでなければfalseを返します。例えば、Array.IndexOfメソッドはEqualsメソッドがtrueを返す要素を探しています。ここでは、自作クラスを作成するときにEqualsメソッドをオーバーライドする方法を説明します。 ですがその前に確認に意味で、Equalsメソッドをオーバーライドしなかった時の既定の動作について説明します。(分かっているという方は読み飛ばしてください。) 参照型のEqualsメソッドの既定の動作まずは、Equalsメソッドをオーバーライドしない次のようなクラスを定義してみます。

    自作クラスのEqualsメソッドをオーバーライドして、等価の定義を変更する
    chago
    chago 2014/02/06
    EqualsメソッドとGetHashCodeメソッドの関係…
  • 配列の中から指定した範囲の要素を抜き出す

    配列の中から指定した範囲の要素を抜き出す例えば、配列の中でインデックスが2番目の要素から5つの要素を抜き出すというように、指定した範囲の要素を抜き出す方法を紹介します。 ちなみにコレクションでは、GetRangeメソッドを使って簡単に行うことができます。 新しい配列を作成して、Array.Copyメソッドでコピーするまず、新しい配列を作成して、Array.Copyメソッドでコピーするという単純な方法が考えられます。次の例では、インデックスが2番目の要素から5つの要素を抜き出しています。 '基になる配列 Dim ary1 As Integer() = New Integer() {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} 'コピー先の配列を作成する Dim ary2 As Integer() = New Integer(4) {} '指定された範囲をコピーする Array.

    配列の中から指定した範囲の要素を抜き出す
  • String配列のプロパティ: DOBON.NETプログラミング掲示板過去ログ

    題名: String配列のプロパティ 著者: yuyu 日時: 2004/02/16 11:45:24 ID: 2529 この記事の返信元: (なし) この記事への返信: [2532] Re:String配列のプロパティ Codingslave 2004/02/16 13:30:59 ツリーを表示 環境/言語:[WinXP SP1/ VB.NET Standard2002/.NET Framework 1.1] 分類:[.NET] ListViewを継承してファイルリストを表示させるコントロールを作っているのですが、 Filterプロパティ(String配列)を作成したのですが、 これをTextBoxのLines配列のようにプロパティウィンドウに表示して編集できるようにしたいのですが、 なにか特別なコーディングが必要なのでしょうか? String配列のプロパティは作っただけではプロパティウ

    chago
    chago 2013/01/11
    プロパティエディタを表示するためには
  • コマンドラインによりプロジェクトをビルドする

    コマンドラインによりプロジェクトをビルドする あるフォルダ以下にあるプロジェクトをすべてビルドする通常プロジェクトやソリューションをビルドする時は、Visual Studioを起動し、ビルドするプロジェクトを開き、ビルドを行います。しかし複数のプロジェクトを一度にビルドしたい場合などでは、いちいちこのような作業を行うのは面倒です。ここでは、コマンドラインからプロジェクトやソリューションのビルドを行えるツールを紹介します。 MSBuildを使用する方法「MSBuild.exe」を使えば、コマンドラインからプロジェクトやソリューションをビルドすることができます。MSBuild.exeは、.NET Framework 2.0以降に含まれているようです。 MSBuild.exeが存在している場所は、.NET Framework 2.0ならば、 C:\Windows\Microsoft.NET\Fr

    コマンドラインによりプロジェクトをビルドする
  • 正規表現の基本: .NET Tips: C#, VB.NET

    正規表現の基ここでは.NET Frameworkの正規表現について基をごく簡単に(主に正規表現パターンについて)説明します。なお.NET Frameworkの正規表現はPerl5の正規表現に対応するようにデザインされているということなので、Perlの正規表現を理解していれば問題ありません。 なお、「正規表現テストツール」を使って正規表現のテストを行うことができますので、お役立てください。 正規表現で何ができるか正規表現は、文字列を検索するために使用します。正規表現を使うと、かなり複雑な検索が可能です。正規表現を利用する主なケースには以下のようなものが挙げられます。 文字列内に指定されたパターンと一致する部分があるか調べる。例えば、入力された文字列が電子メールアドレスとして適当か調べるなど。文字列から指定されたパターンと一致する部分を検索、抽出する。例えば、文字列内にあるURLの部分をす

    正規表現の基本: .NET Tips: C#, VB.NET
  • 正規表現を使って文字列を置換する

    補足:ここでは正規表現の説明はしません。.NET Frameworkの正規表現の基は、「正規表現の基」で説明しています。 正規表現を使って文字列の置換を行うには、RegexクラスのReplaceメソッドを使用します。ここではいくつかの具体例を紹介します。MSDNにも「日付形式の変更」という例が載っていますので、そちらも参考にしてください。 URLにリンクを付ける次の例ではTextBox1に入力された文字列内のURLに自動的にリンク(<a>タグ)をつけて、TextBox1に結果を表示しています。なおこの正規表現パターンは、「Perlメモ」で紹介されているものです。

    正規表現を使って文字列を置換する
    chago
    chago 2011/06/15
    日付フォーマットの置き換えに目から鱗。
  • オブジェクトの内容をXMLファイルに保存、復元する: .NET Tips: C#, VB.NET, Visual Studio

    オブジェクトの内容をファイルに保存、復元する オブジェクトのXMLシリアル化、逆シリアル化を行うオブジェクトの内容をXMLファイルにして保存し、そのXMLファイルから元のオブジェクトに復元できると色々と便利です。例えば、INIファイルの代わりとして、設定を保存、復元したい時などに有用です。(設定を保存する場合は、「アプリケーションの設定を保存する」も参考にしてください。) これを行うには、XmlSerializerクラス(System.Xml.Serialization名前空間)を使うと簡単です。XMLファイルに書き込む時はSerializeメソッドを使ってオブジェクトをXMLシリアル化(シリアライズ)し、XMLファイルを読み込む時はDeserializeメソッドを使ってXML逆シリアル化(デシリアライズ)をします。 オブジェクトの内容をXMLファイルに保存(シリアル化)する次のコードでは

    オブジェクトの内容をXMLファイルに保存、復元する: .NET Tips: C#, VB.NET, Visual Studio
  • 【C#】Refresh、Update、Invalidateメソッドの違い: .NET Tips: C#, VB.NET, Visual Studio

    Refresh、Update、Invalidateメソッドの違いControlクラスのRefresh、Update、Invalidateメソッドは主にコントロールを再描画するために使用されますが、これらの違いはヘルプを読んだだけでは非常に分かりにくいです。 ヘルプによると、これらのメソッドは次のように説明されています。 Refresh メソッド : 強制的に、コントロールがクライアント領域を無効化し、直後にそのコントロール自体とその子コントロールを再描画するようにします。Update メソッド : コントロールによって、クライアント領域内の無効化された領域が再描画されます。Invalidate メソッド : コントロールの特定の領域を無効にし、そのコントロールに描画メッセージを送信します。これらのメソッドが具体的に何を行っているのかを調べるには、「Reflector for .NET」のよ

    【C#】Refresh、Update、Invalidateメソッドの違い: .NET Tips: C#, VB.NET, Visual Studio
    chago
    chago 2011/02/28
  • コントロールの配列を作成する

    コントロールの配列を作成するここでは、幾つかの方法を紹介します。適当な方法を選択してください。 動的にコントロールの配列を作成する通常は、動的にコントロールオブジェクトの配列を作成するのか最も良い方法でしょう。なお、コントロールを動的に作成する方法は、こちらで説明しています。 フォーム(Form1)にボタンコントロールの配列を作成し、ボタンをクリックするとそのボタンのTextを表示する例を以下に示します。ここではフォームのLoadイベントハンドラでボタンコントロールの配列を作成していますが、コンストラクタの適当な位置で行っても結構です。 'ボタンコントロール配列のフィールドを作成 Private testButtons() As System.Windows.Forms.Button 'フォームのLoadイベントハンドラ Private Sub Form1_Load(ByVal sende

    コントロールの配列を作成する
  • 別のフォームのデータを取得、設定する: .NET Tips: C#, VB.NET

    別のフォームのデータを取得、設定するここでは、例えば2つのフォームForm1とForm2があり、Form1からForm2のデータ(例えば、TextBoxに入力されている値)を取得したい(あるいは設定したい)時にどのようにすればよいかについて説明します。 注意:もしForm2が一つしか表示されなくて良いのであれば、「フォームが一つしか表示されないようにする」で紹介している方法を使うのが最も簡単です。そのような場合は、まずはそちらをご覧いただき、その方法では解決できなければ、この記事を参考にしてください。 まず初めにお断りしておきたいのは、状況により最適な方法は異なり、すべてのケースに対応できる適切な方法はないということです。ここでは性急な読者のために初めに「汎用的な方法」を紹介していますが、できるだけこのページを最後までお読みいただき、状況に応じた適切なコードを書けるようになっていただきたい

    別のフォームのデータを取得、設定する: .NET Tips: C#, VB.NET
  • DOBON.NET: VB.NET, C#,

    DOBON.NET へようこそ!DOBON.NET では、プログラミングに関する様々な情報を提供しています。少しでも皆様のお役に立てれば、幸いです。 プログラミング.NET TipsMicrosoft .NET Framework(C#、VB.NET、Visual Studioなど)を使用したプログラミング、アプリケーション開発に関する情報、解説、Tips、ソースコード、サンプル等の紹介。 フォームコントロールDataGridDataGridViewファイル・フォルダ文字列・暗号化画像・印刷インターネットシステムプロセス基セットアップ...すべて見るその他無料ソフト検索掲示板更新履歴DoboWikiリンク集リンクをご希望の方へカードゲーム「ドボン」

    chago
    chago 2009/10/14
  • 1