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

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

C# と VB.NET の入門サイト

Re[3]: Existsの使い方について


(過去ログ 68 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■39841 / inTopicNo.1)  Existsの使い方について
  
□投稿者/ 亜矢 (11回)-(2009/08/14(Fri) 14:32:53)

分類:[.NET 全般] 

よろしくお願いします。
Module1.strdata1の中から同じデータを排除して違うデータのリストを求めて下記のプログラムを作成しました。
これはVBAで使っているものです。
VB2008に応用しようとおもって使ったら、エラーが発生しました。
”Eistsはobjectに見つかりませんでした。”

Private Sub ComboBox2_DropDown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.DropDown


Dim Mydic As New Object

For Each C In Module1.strdata1
If Not C = "" Then
If Not Mydic.Exists(C) Then
Mydic.Add(C, "")
End If
End If
Next
end sub
 どのように変更すれば問題が解決できるか、教えて頂きたいと思います。
引用返信 編集キー/
■39843 / inTopicNo.2)  Re[1]: Existsの使い方について
□投稿者/ επιστημη (2115回)-(2009/08/14(Fri) 15:12:34)
επιστημη さんの Web サイト
> Module1.strdata1の中から同じデータを排除して違うデータのリストを求めて下記のプログラムを作成しました。

↓こんなんでえぇですかいのぅ

Imports System.Collections.Generic

Module Program
  Sub Main()
    Dim input As String() = { "りんご","みかん","もも","みかん","りんご","りんご","なし" }
    Dim result As ICollection(Of String) = New List(Of String)

    ' input の各要素を重複なしに result に追加 
    For Each item As String In input
      If Not result.Contains(item) Then
        result.Add(item)
      End If
    Next

    ' 結果確認
    For Each item As String In result 
      Console.WriteLine(item)
    Next
  End Sub
End Module

引用返信 編集キー/
■39844 / inTopicNo.3)  Re[1]: Existsの使い方について
□投稿者/ 魔界の仮面弁士 (1216回)-(2009/08/14(Fri) 15:23:20)
2009/08/14(Fri) 16:00:56 編集(投稿者)
No39841 (亜矢 さん) に返信
> Module1.strdata1の中から同じデータを排除して違うデータのリストを求めて下記のプログラムを作成しました。

Module1.strdata1 なのですか? 提示されたコードでは、
Module1.strdata1 になっているようですけれども。


で。Module1.strdata1 のデータ型は何でしょうか?


また、質問の意味は、
   strdata1 内には重複するデータが含まれていて、その中で、
   重複しないデータ(1件のみ存在するデータ)はそのまま取り出し、
   重複するデータ(2件以上存在するデータ)は一つにして取り出したい。

  →「1,2,3,4,3」というデータから、「1,2,3,4」というデータを取り出したい。

という意図であっていますか?



> これはVBAで使っているものです。
どの VBA か分かりませんが、ほとんどの VBA では
 Dim Mydic As New Object
 If Not Mydic.Exists(C) Then
というコードは使えないと思いますよ。実際の VBA コードは、どのようなものですか?


> ”Eistsはobjectに見つかりませんでした。”
本当にこのメッセージでしたか?


> どのように変更すれば問題が解決できるか、教えて頂きたいと思います。
情報が不足しているので、何とも答えにくいのですが、

Module1.strdata1 というのが、「String 配列」や「List(Of String)」であるとして、
やりたい事が先の
  「1,2,3,4,3」というデータから、「1,2,3,4」というデータを取り出したい。
であるのならば、

  Dim result = Module1.strdata1.Distinct()

の一行だけで OK です。

引用返信 編集キー/
■39845 / inTopicNo.4)  Re[2]: Existsの使い方について
□投稿者/ みきぬ (612回)-(2009/08/14(Fri) 15:33:47)
> Handles ComboBox2.DropDown

何で ComboBox.DropDown イベントでやってるんだろう…。
引用返信 編集キー/
■39846 / inTopicNo.5)  Re[3]: Existsの使い方について
□投稿者/ こあら (54回)-(2009/08/14(Fri) 15:54:42)
VBAでのCreateObject相当の処理が抜けているんじゃないでしょうか?
> Set Mydic = CreateObject("Scripting.Dictionary")

引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -