【GeneXus Tips】IN と IndexOf

毎日風邪気味、okitaです。

今回はGeneXusの記事にするかNode.jsの記事にするか悩みました!
マイブーム Node.js!!!!!

ということでGeneXusの記事を書きますw
今回は簡単なところで配列およびSDT内の存在確認とかを備忘録として
残しておきまーす。

使用した環境は以下
GeneXus X Ev2 u7
C# IIS .Net

 

■INを使用した存在確認 – 文字列変数

 

■IndexOfを使用した存在確認 – 文字列変数

 

★☆★☆ 結果 ★☆★☆

★☆★☆ 解説 ★☆★☆

存在確認する方法として「IN」と「IndexOf」を使用しました。
どちらで実装しても結果は同じになりますね。


次はSDT内の検索

SDTは以下のような形・・・・まぁ適当です!

■INを使用した存在確認 – SDT変数

 

■IndexOfを使用した存在確認 – SDT変数

 

★☆★☆ 結果 ★☆★☆

★☆★☆ 解説 ★☆★☆

・IN を使用し存在を確認1
コレクションからインデックスが1のアイテムを取得してからIN、IndexOfで
存在を確認しているので当然「存在します」がメッセージとして出てきます。

・IN を使用し存在を確認2
インデックスが99のアイテムを取得してIN、IndexOfで存在確認なので
「存在しません」がメッセージとして出力されます。
危険!と書いたのはインデックスの存在確認(カウントとかIndexOfとか)を
使用しないでいきなりインデックス99のアイテムにアクセスしているからです。

・IN を使用し存在を確認3
これは「存在しません」が出力されます。
アイテムの内容が同じようになるのだから「存在します」が出るような気がしますが
newを行っているので別物という認識なのでしょう・・・たぶんw

 

備忘録として書きましたがなんか久々に書きました。
GeneXusやればやるだけ謎が増えるwww

公式wikiのリンクも張っておきますよっと。

GeneXus wiki – IN演算子
http://wiki.genexus.jp/hwiki.aspx?IN+%E6%BC%94%E7%AE%97%E5%AD%90,
GeneXus wiki – IndexOf
http://wiki.genexus.jp/hwiki.aspx?IndexOf+%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89,

 

 


余談

一番最初に数値で適当にサンプル作ってブログ書くかぁって思ってやったのが
以下のコード・・・・GeneXusさすがっすw

■IndexOfを使用した存在確認 – 数値変数

 

★☆★☆ 結果 ★☆★☆

★☆★☆ 解説 ★☆★☆

バグかな?(゚⊿゚)シラネw