私はドロップダウンリストを持っており、私はそれにストアドプロシージャの結果を割り当てました。ストアドプロシージャは1990年から2050年を返し、値の一部は重複しています(例... 1990回、1999年:4回...など)。今私はこれらの重複を削除したいと一緒に、今年のドロップダウンでのみプラスマイナス5年だけを表示する必要があります。たとえば、現在の年は2017なので、ドロップダウンで2012年(2017-5)から2022(2017 + 5)まで表示する必要があります。重複する値といくつかの特定の値をドロップダウンリストから削除するには?
サンプルコード私が試した:
Public Shared Sub RemoveDuplicateItems(ddl As DropDownList)
For i As Integer = 0 To ddl.Items.Count - 1
ddl.SelectedIndex = i
Dim str As String = ddl.SelectedItem.ToString()
For counter As Integer = i + 1 To ddl.Items.Count - 1
ddl.SelectedIndex = counter
Dim compareStr As String = ddl.SelectedItem.ToString()
If str = compareStr Then
ddl.Items.RemoveAt(counter)
counter = counter - 1
End If
Next
Next
For i As Integer = 0 To ddl.Items.Count - 1
ddl.SelectedIndex = i
Dim str As String = ddl.SelectedItem.ToString()
If str <= Convert.ToString(Now.Year - 5) OrElse str >= Convert.ToString(Now.Year + 5) Then
ddl.Items.RemoveAt(i)
End If
Next
End Sub
をしかし、期待どおりに動作していません。最初の部分は基本的に重複を削除するためのものですが、それは2番目の部分になるとプラスマイナス5年という制限がある問題があります。誰かが私に解決方法を教えてもらえますか?
[Distinct in sql statement]を選択しますか? – OneFineDay
@OneFineDay残念ながら私はストアドプロシージャを変更することはできません..! – Abhi
ハッシュセットを使用すると、重複した値を避けることができます – genespos