|
分類:[VB.NET/VB2005 以降]
以前、73316 日時をユニークにしたバッファの作成 で、質問しました件の追加質問です。 73318 で、サンプルをご教授頂き、それを元に作成しました。 着手が遅くなってしまいましたが、何とか形になってきました。
仕様変更などもあり当初と少々変ってしまいましたが、基本仕様は同じです。
全ては掲載できないので、部分のみ抜粋しました。 下記のコーディングで希望のデータが DirResult に入っています。 しかし、ソートとデータの取り出し方がよく分かりません。
どうぞよろしくお願い致します。
Q1. サンプルで、↓のように教えて頂いたので、同じように真似てみました。 しかし、この 行 が何を指すのか、よく分かりません。
Dim 最終結果 = From 行 In 集計結果 Order By 行.Key Select String.Join(",", 行.Value)
実コーディング Dim dirWrite = From 行 In DirResult Order By 行.Key Select String.Join(",", 行.Value)
Q2. 現在、データが次のような形で入っています。 これを、For文などで9個のデータを表示するためには、どのように記述すればよいのでしょうか?
DirResult(0)(1)と書けば、23.2 が参照できるかと思っていたのですが、そうではないようです。 いろいろ試してみましたが、参照方法が分かりません。
Q3. 3つの日時は、DirResult.Count で数が求まりますが、横方向の <日時 A室 B室> の個数はどのように取得することができるのでしょうか?
日時 A室 B室
2014/09/30 18:00:00 23.2 11.2 2014/09/30 19:04:00 22.9 13.2 2014/10/01 12:33:33 21.4 11.8
'---------------------------------------------------------- ' Directoryの作成 '---------------------------------------------------------- Dim DirResult As New Dictionary(Of String, String())
'省略
'Qualityの変換 For xxx = 0 To GetTagDataNumber - 1
If GetTagData(xxx).Quality <> "Good" Then GetTagData(xxx).ItemValue = "NA"
Dim strTimestampW = GetTagData(xxx).TimeStamp Dim strValueW = GetTagData(xxx).ItemValue Dim strResultW(CollectedVariablesNumber) As String
If DirResult.ContainsKey(strTimestampW) Then strResultW = DirResult(strTimestampW) '既存行の取得 Else strResultW = New String(CollectedVariablesNumber) {} strResultW(0) = strTimestampW '0列目にはTimestampを格納 DirResult.Add(strTimestampW, strResultW) End If
strResultW(ItemNumberCount) = strValueW Next xxx
'省略
'DirResultを、日付順に並べる Dim dirWrite = From 行 In DirResult Order By 行.Key Select String.Join(",", 行.Value)
|