質問編集履歴
4
追記5
    
        title	
    CHANGED
    
    | 
         
            File without changes
         
     | 
    
        body	
    CHANGED
    
    | 
         @@ -315,6 +315,7 @@ 
     | 
|
| 
       315 
315 
     | 
    
         
             
            ```
         
     | 
| 
       316 
316 
     | 
    
         | 
| 
       317 
317 
     | 
    
         
             
            あわせてインターフェース、変換クラスのベースを作成します。
         
     | 
| 
      
 318 
     | 
    
         
            +
            (インターフェースにふさわしくないメソッドがあり修正いたしました。)
         
     | 
| 
       318 
319 
     | 
    
         | 
| 
       319 
320 
     | 
    
         
             
            ```lang-<ここに言語を入力>
         
     | 
| 
       320 
321 
     | 
    
         
             
            ''' <summary>
         
     | 
3
追記3
    
        title	
    CHANGED
    
    | 
         
            File without changes
         
     | 
    
        body	
    CHANGED
    
    | 
         @@ -293,8 +293,8 @@ 
     | 
|
| 
       293 
293 
     | 
    
         
             
                ''' 連続する値は返さない
         
     | 
| 
       294 
294 
     | 
    
         
             
                ''' </summary>
         
     | 
| 
       295 
295 
     | 
    
         
             
                ''' <param name="i"></param>
         
     | 
| 
       296 
     | 
    
         
            -
                ''' <returns></returns>
         
     | 
| 
      
 296 
     | 
    
         
            +
                ''' <returns>T 返却対象 F 返却対象でない</returns>
         
     | 
| 
       297 
     | 
    
         
            -
                ''' <remarks></remarks>
         
     | 
| 
      
 297 
     | 
    
         
            +
                ''' <remarks>引数はリストの各インデックスである</remarks>
         
     | 
| 
       298 
298 
     | 
    
         
             
                Protected Overrides Function IsGetEnumrable(ByVal i As Integer) As Boolean
         
     | 
| 
       299 
299 
     | 
    
         | 
| 
       300 
300 
     | 
    
         
             
                        If i <> Me.list.Count - 1 Then
         
     | 
| 
         @@ -390,8 +390,8 @@ 
     | 
|
| 
       390 
390 
     | 
    
         
             
                ''' 返却対象の値であるか確認
         
     | 
| 
       391 
391 
     | 
    
         
             
                ''' </summary>
         
     | 
| 
       392 
392 
     | 
    
         
             
                ''' <param name="i"></param>
         
     | 
| 
       393 
     | 
    
         
            -
                ''' <returns>引数はリストの各インデックスである</returns>
         
     | 
| 
       394 
     | 
    
         
            -
                ''' < 
     | 
| 
      
 393 
     | 
    
         
            +
                ''' <returns>T 返却対象 F 返却対象でない</returns>
         
     | 
| 
      
 394 
     | 
    
         
            +
                ''' <remarks>引数はリストの各インデックスである</</remarks>
         
     | 
| 
       395 
395 
     | 
    
         
             
                Protected MustOverride Function IsGetEnumrable(ByVal i As Integer) As Boolean
         
     | 
| 
       396 
396 
     | 
    
         | 
| 
       397 
397 
     | 
    
         | 
2
追記2
    
        title	
    CHANGED
    
    | 
         
            File without changes
         
     | 
    
        body	
    CHANGED
    
    | 
         @@ -272,4 +272,156 @@ 
     | 
|
| 
       272 
272 
     | 
    
         | 
| 
       273 
273 
     | 
    
         
             
            End Class
         
     | 
| 
       274 
274 
     | 
    
         | 
| 
      
 275 
     | 
    
         
            +
            ```
         
     | 
| 
      
 276 
     | 
    
         
            +
             
     | 
| 
      
 277 
     | 
    
         
            +
            追記2
         
     | 
| 
      
 278 
     | 
    
         
            +
            変換クラスである「NotConsecutive」において
         
     | 
| 
      
 279 
     | 
    
         
            +
            連続を省くという処理が分離されておらず
         
     | 
| 
      
 280 
     | 
    
         
            +
            良くないコードと感じましたので修正いたします。
         
     | 
| 
      
 281 
     | 
    
         
            +
             
     | 
| 
      
 282 
     | 
    
         
            +
            ```lang-<ここに言語を入力>
         
     | 
| 
      
 283 
     | 
    
         
            +
            ''' <summary>
         
     | 
| 
      
 284 
     | 
    
         
            +
            ''' 変換クラス
         
     | 
| 
      
 285 
     | 
    
         
            +
            ''' </summary>
         
     | 
| 
      
 286 
     | 
    
         
            +
            ''' <remarks></remarks>
         
     | 
| 
      
 287 
     | 
    
         
            +
            Class NotConsecutive(Of T)
         
     | 
| 
      
 288 
     | 
    
         
            +
                Inherits ConvertEnumrable(Of T)
         
     | 
| 
      
 289 
     | 
    
         
            +
             
     | 
| 
      
 290 
     | 
    
         
            +
            #Region "公開メソッド"
         
     | 
| 
      
 291 
     | 
    
         
            +
             
     | 
| 
      
 292 
     | 
    
         
            +
                ''' <summary>
         
     | 
| 
      
 293 
     | 
    
         
            +
                ''' 連続する値は返さない
         
     | 
| 
      
 294 
     | 
    
         
            +
                ''' </summary>
         
     | 
| 
      
 295 
     | 
    
         
            +
                ''' <param name="i"></param>
         
     | 
| 
      
 296 
     | 
    
         
            +
                ''' <returns></returns>
         
     | 
| 
      
 297 
     | 
    
         
            +
                ''' <remarks></remarks>
         
     | 
| 
      
 298 
     | 
    
         
            +
                Protected Overrides Function IsGetEnumrable(ByVal i As Integer) As Boolean
         
     | 
| 
      
 299 
     | 
    
         
            +
             
     | 
| 
      
 300 
     | 
    
         
            +
                        If i <> Me.list.Count - 1 Then
         
     | 
| 
      
 301 
     | 
    
         
            +
                            '最後のインデックス以外
         
     | 
| 
      
 302 
     | 
    
         
            +
                            While GetItem(i) = GetItem(i + 1)
         
     | 
| 
      
 303 
     | 
    
         
            +
                                '連続する値は返さない
         
     | 
| 
      
 304 
     | 
    
         
            +
                                Return False
         
     | 
| 
      
 305 
     | 
    
         
            +
                            End While
         
     | 
| 
      
 306 
     | 
    
         
            +
                        End If
         
     | 
| 
      
 307 
     | 
    
         
            +
             
     | 
| 
      
 308 
     | 
    
         
            +
                        Return True
         
     | 
| 
      
 309 
     | 
    
         
            +
             
     | 
| 
      
 310 
     | 
    
         
            +
                End Function
         
     | 
| 
      
 311 
     | 
    
         
            +
             
     | 
| 
      
 312 
     | 
    
         
            +
            #End Region
         
     | 
| 
      
 313 
     | 
    
         
            +
             
     | 
| 
      
 314 
     | 
    
         
            +
            End Class
         
     | 
| 
      
 315 
     | 
    
         
            +
            ```
         
     | 
| 
      
 316 
     | 
    
         
            +
             
     | 
| 
      
 317 
     | 
    
         
            +
            あわせてインターフェース、変換クラスのベースを作成します。
         
     | 
| 
      
 318 
     | 
    
         
            +
             
     | 
| 
      
 319 
     | 
    
         
            +
            ```lang-<ここに言語を入力>
         
     | 
| 
      
 320 
     | 
    
         
            +
            ''' <summary>
         
     | 
| 
      
 321 
     | 
    
         
            +
            ''' 変換インターフェイス
         
     | 
| 
      
 322 
     | 
    
         
            +
            ''' </summary>
         
     | 
| 
      
 323 
     | 
    
         
            +
            ''' <remarks></remarks>
         
     | 
| 
      
 324 
     | 
    
         
            +
            Public Interface IConvertEnumrable(Of T)
         
     | 
| 
      
 325 
     | 
    
         
            +
             
     | 
| 
      
 326 
     | 
    
         
            +
                'リストを受け取る
         
     | 
| 
      
 327 
     | 
    
         
            +
                Sub SetEnumerable(ByVal list As IEnumerable(Of T), ByVal itemName As String)
         
     | 
| 
      
 328 
     | 
    
         
            +
             
     | 
| 
      
 329 
     | 
    
         
            +
                'リストを返す
         
     | 
| 
      
 330 
     | 
    
         
            +
                Function GetEnumerable() As IEnumerable(Of T)
         
     | 
| 
      
 331 
     | 
    
         
            +
             
     | 
| 
      
 332 
     | 
    
         
            +
            End Interface
         
     | 
| 
      
 333 
     | 
    
         
            +
             
     | 
| 
      
 334 
     | 
    
         
            +
             
     | 
| 
      
 335 
     | 
    
         
            +
            ''' <summary>
         
     | 
| 
      
 336 
     | 
    
         
            +
            ''' 変換クラス
         
     | 
| 
      
 337 
     | 
    
         
            +
            ''' </summary>
         
     | 
| 
      
 338 
     | 
    
         
            +
            ''' <typeparam name="T"></typeparam>
         
     | 
| 
      
 339 
     | 
    
         
            +
            ''' <remarks></remarks>
         
     | 
| 
      
 340 
     | 
    
         
            +
            Public MustInherit Class ConvertEnumrable(Of T)
         
     | 
| 
      
 341 
     | 
    
         
            +
                Implements IConvertEnumrable(Of T)
         
     | 
| 
      
 342 
     | 
    
         
            +
             
     | 
| 
      
 343 
     | 
    
         
            +
            #Region "変数"
         
     | 
| 
      
 344 
     | 
    
         
            +
             
     | 
| 
      
 345 
     | 
    
         
            +
                'リスト
         
     | 
| 
      
 346 
     | 
    
         
            +
                Protected Property list As List(Of T)
         
     | 
| 
      
 347 
     | 
    
         
            +
                '対象アイテム
         
     | 
| 
      
 348 
     | 
    
         
            +
                Protected Property itemName As String
         
     | 
| 
      
 349 
     | 
    
         
            +
             
     | 
| 
      
 350 
     | 
    
         
            +
            #End Region
         
     | 
| 
      
 351 
     | 
    
         
            +
             
     | 
| 
      
 352 
     | 
    
         
            +
            #Region "公開メソッド"
         
     | 
| 
      
 353 
     | 
    
         
            +
             
     | 
| 
      
 354 
     | 
    
         
            +
             ''' <summary>
         
     | 
| 
      
 355 
     | 
    
         
            +
                ''' リストを受け取る
         
     | 
| 
      
 356 
     | 
    
         
            +
                ''' </summary>
         
     | 
| 
      
 357 
     | 
    
         
            +
                ''' <param name="list"></param>
         
     | 
| 
      
 358 
     | 
    
         
            +
                ''' <param name="itemName"></param>
         
     | 
| 
      
 359 
     | 
    
         
            +
                ''' <remarks></remarks>
         
     | 
| 
      
 360 
     | 
    
         
            +
                Public Sub SetEnumerable(list As IEnumerable(Of T), ByVal itemName As String) Implements IConvertEnumrable(Of T).SetEnumerable
         
     | 
| 
      
 361 
     | 
    
         
            +
             
     | 
| 
      
 362 
     | 
    
         
            +
                    Me.list = list
         
     | 
| 
      
 363 
     | 
    
         
            +
                    Me.itemName = itemName
         
     | 
| 
      
 364 
     | 
    
         
            +
             
     | 
| 
      
 365 
     | 
    
         
            +
                End Sub
         
     | 
| 
      
 366 
     | 
    
         
            +
             
     | 
| 
      
 367 
     | 
    
         
            +
                ''' <summary>
         
     | 
| 
      
 368 
     | 
    
         
            +
                ''' リストを返す
         
     | 
| 
      
 369 
     | 
    
         
            +
                ''' </summary>
         
     | 
| 
      
 370 
     | 
    
         
            +
                ''' <returns></returns>
         
     | 
| 
      
 371 
     | 
    
         
            +
                ''' <remarks></remarks>
         
     | 
| 
      
 372 
     | 
    
         
            +
                Public Iterator Function GetEnumerable() As IEnumerable(Of T) Implements IConvertEnumrable(Of T).GetEnumerable
         
     | 
| 
      
 373 
     | 
    
         
            +
             
     | 
| 
      
 374 
     | 
    
         
            +
                 For i = 0 To Me.list.Count - 1
         
     | 
| 
      
 375 
     | 
    
         
            +
             
     | 
| 
      
 376 
     | 
    
         
            +
                        '返却対象でない場合スキップ
         
     | 
| 
      
 377 
     | 
    
         
            +
                        If IsGetEnumrable(i) = False Then Continue For
         
     | 
| 
      
 378 
     | 
    
         
            +
             
     | 
| 
      
 379 
     | 
    
         
            +
                        '値を返す
         
     | 
| 
      
 380 
     | 
    
         
            +
                        Yield Me.list(i)
         
     | 
| 
      
 381 
     | 
    
         
            +
                 Next
         
     | 
| 
      
 382 
     | 
    
         
            +
             
     | 
| 
      
 383 
     | 
    
         
            +
                End Function
         
     | 
| 
      
 384 
     | 
    
         
            +
             
     | 
| 
      
 385 
     | 
    
         
            +
            #End Region
         
     | 
| 
      
 386 
     | 
    
         
            +
             
     | 
| 
      
 387 
     | 
    
         
            +
            #Region "内部メソッド"
         
     | 
| 
      
 388 
     | 
    
         
            +
             
     | 
| 
      
 389 
     | 
    
         
            +
                ''' <summary>
         
     | 
| 
      
 390 
     | 
    
         
            +
                ''' 返却対象の値であるか確認
         
     | 
| 
      
 391 
     | 
    
         
            +
                ''' </summary>
         
     | 
| 
      
 392 
     | 
    
         
            +
                ''' <param name="i"></param>
         
     | 
| 
      
 393 
     | 
    
         
            +
                ''' <returns>引数はリストの各インデックスである</returns>
         
     | 
| 
      
 394 
     | 
    
         
            +
                ''' <remarks>T 返却対象 F 返却対象でない</remarks>
         
     | 
| 
      
 395 
     | 
    
         
            +
                Protected MustOverride Function IsGetEnumrable(ByVal i As Integer) As Boolean
         
     | 
| 
      
 396 
     | 
    
         
            +
             
     | 
| 
      
 397 
     | 
    
         
            +
             
     | 
| 
      
 398 
     | 
    
         
            +
                ''' <summary>
         
     | 
| 
      
 399 
     | 
    
         
            +
                 ''' アイテム取得
         
     | 
| 
      
 400 
     | 
    
         
            +
                 ''' </summary>
         
     | 
| 
      
 401 
     | 
    
         
            +
                 ''' <param name="i"></param>
         
     | 
| 
      
 402 
     | 
    
         
            +
                 ''' <remarks></remarks>
         
     | 
| 
      
 403 
     | 
    
         
            +
                 Protected Function GetItem(ByVal i As Integer) As String
         
     | 
| 
      
 404 
     | 
    
         
            +
                    Dim item As Object = Me.list(i)     'インデックスの位置のアイテム
         
     | 
| 
      
 405 
     | 
    
         
            +
                    Dim ret As String = Nothing         '戻り値
         
     | 
| 
      
 406 
     | 
    
         
            +
             
     | 
| 
      
 407 
     | 
    
         
            +
                    If Me.itemName Is Nothing Then
         
     | 
| 
      
 408 
     | 
    
         
            +
                        'アイテムの指定がなかった場合
         
     | 
| 
      
 409 
     | 
    
         
            +
                        ret = item.ToString()
         
     | 
| 
      
 410 
     | 
    
         
            +
                    Else
         
     | 
| 
      
 411 
     | 
    
         
            +
                        'アイテムの指定があった場合
         
     | 
| 
      
 412 
     | 
    
         
            +
                        Select Case GetType(T)
         
     | 
| 
      
 413 
     | 
    
         
            +
                            '- DataRowの場合
         
     | 
| 
      
 414 
     | 
    
         
            +
                            Case GetType(DataRow)
         
     | 
| 
      
 415 
     | 
    
         
            +
                                ret = item.item(itemName)
         
     | 
| 
      
 416 
     | 
    
         
            +
             
     | 
| 
      
 417 
     | 
    
         
            +
                        End Select
         
     | 
| 
      
 418 
     | 
    
         
            +
                    End If
         
     | 
| 
      
 419 
     | 
    
         
            +
             
     | 
| 
      
 420 
     | 
    
         
            +
                    '比較対象を返す
         
     | 
| 
      
 421 
     | 
    
         
            +
                    Return ret
         
     | 
| 
      
 422 
     | 
    
         
            +
                 End Function
         
     | 
| 
      
 423 
     | 
    
         
            +
             
     | 
| 
      
 424 
     | 
    
         
            +
            #End Region
         
     | 
| 
      
 425 
     | 
    
         
            +
             
     | 
| 
      
 426 
     | 
    
         
            +
            End Class
         
     | 
| 
       275 
427 
     | 
    
         
             
            ```
         
     | 
1
編集1
    
        title	
    CHANGED
    
    | 
         
            File without changes
         
     | 
    
        body	
    CHANGED
    
    | 
         @@ -10,7 +10,11 @@ 
     | 
|
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
            どうかよろしくお願いいたします。
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
      
 13 
     | 
    
         
            +
            追記1
         
     | 
| 
      
 14 
     | 
    
         
            +
            1、2言のコメントでも頂けましたら幸いです。
         
     | 
| 
      
 15 
     | 
    
         
            +
            今後のプログラミングでいかしていけるよう心に留めます。
         
     | 
| 
       13 
16 
     | 
    
         | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
       14 
18 
     | 
    
         
             
            ```lang-<ここに言語を入力>
         
     | 
| 
       15 
19 
     | 
    
         
             
            概要
         
     | 
| 
       16 
20 
     | 
    
         
             
                リスト内要素 2回以上連続する場合1回とする
         
     |