を含むリストがあります
- の
Price
- の
Code
Price
リストを配列に分割することができましたが、配列をさらに分割して、と を別々に取得し、を昇順Code
にソートできるようにしたいと考えています。Price
並べ替えが発生すると、Code
も一緒に並べ替える必要がPrice
ありCode
ます。
したがって、次のようになります: 元のリスト:
1588,8DNY;1488,ACNY;1288,7DPE;1888,8HUC;1488,8WNH;
arrPrice に分割した後:
[1588,8DNY],[1488,ACNY],[1288,7DPE],[1888,8HUC],[1488,8WNH]
2nd Splitting 2ndarr価格:
[1588],[1488],[1288],[1888],[1488]
2番目の分割 2ndarrCode:
[8DNY],[ACNY],[7DPE],[8HUC],[8WNH]
価格を昇順に並べ替える:
[1288],[1488],[1488],[1588],[1888]
コードは次のようにソートされます。
[7DPE],[ACNY],[8HUC],[8WNH]
最初の分割後に行き詰まりました。
if (lblprices.Text != "")
{
arrprice = lblprices.Text.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
Array.Sort(arrprice);
for (i = 0; i < arrprice.Length; i++)
{
arr2 = arrprice[i].Split(',');
SQL2 = "SELECT DISTINCT [TP].[TCode], ";
SQL2 += "[TP].[TName], ";
SQL2 += "[TP].[TName_CN], ";
SQL2 += "[TP].[TourType], ";
SQL2 += "[TP].[LastUpdateDate], ";
SQL2 += "[TP].[ValidityFrom], ";
SQL2 += "[TP].[ValidityTo], ";
SQL2 += "[CL].[CountryCode], ";
SQL2 += "[CL].[CityName] ";
SQL2 += "FROM [CL], [TP], [TourItinerary],[TourHotel] ";
SQL2 += "WHERE [TP].[Activation] = 1 ";
SQL2 += "AND [TP].[TCode] = '" + arr2[1] + "' ";
SQL2 += "ORDER BY [TP].[LastUpdateDate] DESC ";
objConnTour.Open();
SqlCommand command = new SqlCommand(SQL2, objConnTour);
SqlDataReader dataReader = command.ExecuteReader();
if (dataReader.Read())
{
html += "<tr><td class=\"border\">" + dataReader["TCode"] + "</td>";
html += "<td class=\"border\">" + dataReader["TName"] + "</td>";
html += "<td class=\"border\">" + dataReader["TName_CN"] + "</td>";
html += "<td class=\"border\">" + dataReader["TType"] + "</td>";
html += "<td class=\"border\">" + dataReader["LastUpdateDate"] + "</td>";
html += "<td class=\"border\">" + dataReader["ValidityFrom"] + "</td>";
html += "<td class=\"border\">" + dataReader["ValidityTo"] + "</td>";
html += "<td class=\"border\">" + dataReader["CountryCode"] + "</td>";
html += "<td class=\"border\">" + dataReader["CityName"] + "</td>";
html += "<td class=\"border\">from <span class=\"price-red\">S$<b>" + arr2[0] + "</b></span><td/></tr>";
}
dataReader.Close();
objConnTour.Close();
}
}
return html;
上記のコードでは、価格を昇順で並べ替えることができません。arr2
私の分割でわかるように、に基づいてデータベースからデータを取得するため、Code
と を一緒にする必要があります。Price
Code
- - - - 編集 - - - - -
問題は、価格が 1000 ~ 1999 年の場合、完全にソートされることです。ただし、価格が 1000 未満の場合、昇順で並べ替えられません
例は、@jekcom から提供されたコードを使用した結果のスクリーンショットです。
これは、リストを分割してデータベースから生で取得していない場合です
そして、これは @jekcom のコードを使用してソートされたものです
Price が昇順でソートされていないことに注意してください。