曜日を並べ替える機能はありますが、順番が違う可能性がありますが、結果が期待通りに機能しないためです。私は間違って何をしていますか?カレンダーオカレンスに従って曜日のリストを並べ替えるにはどうすればいいですか?
答えて
public void SortRemainingDays()
{
var listOfTempDays = new List<string>();
listOfTempDays.Add("Monday");
listOfTempDays.Add("Tuesday");
listOfTempDays.Add("Wednesday");
listOfTempDays.Add("Thursday");
listOfTempDays.Add("Friday");
listOfTempDays.Add("Saturday");
listOfTempDays.Add("Sunday");
for (int i = 0; i < ListOfRemainingDays.Count; i++)
{
var day = ListOfRemainingDays[i];
listOfTempDays.Remove(day);
}
ListOfRemainingDays = listOfTempDays;
}
void Main()
{
SortDaysOfWeek(new[] {
"Monday",
"Wednesday",
"Tuesday",
"Thursday",
"Sunday"
}).Dump();
}
// Define other methods and classes here
DayOfWeek GetDayOfWeekFromString(string str)
{
return (DayOfWeek)Enum.Parse(typeof(DayOfWeek), str);
}
int GetDayOfWeekPosition(DayOfWeek dow)
{
return (int)dow;
}
List<string> SortDaysOfWeek(IEnumerable<string> daysOfWeek)
{
return daysOfWeek
.Select(GetDayOfWeekFromString)
.GroupBy(x => GetDayOfWeekPosition(x), x => x)
.OrderBy(g => g.Key)
.SelectMany(x => x)
.Select(dow => dow.ToString())
.ToList();
}
上記LinqPadのために書かれたコード(単にDump()
呼び出しを削除)。
これは、週の最初の曜日として日曜日と並べ替えることを前提としています。これはかなり標準的です。月曜日を最初の日にする場合は、これを変更する練習として残します。
このコードが生成します。
1. Sunday
2. Monday
3. Tuesday
4. Wednesday
5. Thursday
アップデートを
私は、次のコードを微調整しました:私はあなたが基本的にDayOfWeek
を複製したいことを見
void Main()
{
SortDaysOfWeek(new[] {
"Monday",
"Wednesday",
"Tuesday",
"Thursday",
"Sunday"
}).Dump();
}
// Define other methods and classes here
DayOfWeek GetDayOfWeekFromString(string str)
{
return (DayOfWeek)Enum.Parse(typeof(DayOfWeek), str);
}
int GetDayOfWeekPosition(DayOfWeek dow)
{
return (int)dow;
}
List<string> SortDaysOfWeek(IEnumerable<string> daysOfWeek)
{
return daysOfWeek
.Select(GetDayOfWeekFromString)
.OrderBy(x => x, new DayOfWeekComparer(false))
.Select(dow => dow.ToString())
.ToList();
}
class DayOfWeekComparer : IComparer<DayOfWeek>
{
private readonly bool _sundayStart = false;
public DayOfWeekComparer(bool sundayIsStartOfWeek)
{
_sundayStart = sundayIsStartOfWeek;
}
public int Compare(DayOfWeek left, DayOfWeek right)
{
var leftPos = (int)left;
var rightPos = (int)right;
if (!_sundayStart)
{
if (left == DayOfWeek.Monday) leftPos = 0;
if (left == DayOfWeek.Sunday) leftPos = 6;
if (right == DayOfWeek.Monday) rightPos = 0;
if (right == DayOfWeek.Sunday) rightPos = 6;
}
if (leftPos < rightPos) return -1;
if (leftPos > rightPos) return 1;
return 0;
}
}
列挙し、あなた自身の位置を使用して、これは確かにこれを行う方法ではありません。
私はこれを答えとして受け入れる前に、月曜日が週の最初の曜日であるようにコードを調整できますか? –
@MikoM私はそれを残しました。それは難しいことではありません。そして、SOは、問題への解決策を喚起するためにここにあります。コピーと貼り付けられたコードのワンストップショップではありません。私はあなたに一般的な原則を示しましたが、あなたのニーズに合わせることはあなた次第です。 – Clint
ああ、ちょうどGetDayOfWeekPosition関数を作成しますか? –
@Clintが提出したコードが動作し、月曜日が月曜日になるようDayOfWeekの列挙値が変更されました。
[Serializable]
[ComVisible(true)]
public enum DayOfWeek
{
Monday = 0,
Tuesday = 1,
Wednesday = 2,
Thursday = 3,
Friday = 4,
Saturday = 5,
Sunday = 6
}
私の更新された答えを参照してください、これはあなたがこれを行う必要があります方法ではありません。 – Clint
- 1. 配列を別の配列に従って並べ替えるにはどうすればよいですか?
- 2. 注文の選択に従ってリストを並べ替える
- 3. 他のリストの並べ替え順にスカラオブジェクトのリストを並べ替えるにはどうすればいいですか?
- 4. テーブルの値をリストに格納して並べ替えるにはどうすればいいですか?
- 5. 関連するプロパティによってフェッチリクエストを並べ替えるにはどうすればいいですか?
- 6. 距離に最も近いユーザーのリストを並べ替えるにはどうすればいいですか?
- 7. mysqlの日付に従ってフェッチされたデータを並べ替えます
- 8. Javaでグループ化してリストを並べ替えるにはどうすればいいですか?
- 9. 2つのフィールドでScalaのリストを並べ替えるにはどうすればいいですか?
- 10. アイテムの親子関係に従って階層的にリストを並べ替えるにはどうすればよいですか?
- 11. この配列を日付で並べ替えるにはどうすればいいですか?
- 12. DataTables行を日付順に並べ替えるにはどうすればいいですか?
- 13. Dartで文字列のリストを並べ替えるにはどうすればいいですか?
- 14. sqlalchemyを使用して結果をリストで並べ替えるにはどうすればよいですか?
- 15. 曜日の日付順に並べ替えるのにはどのような方法がありますか?
- 16. PHPはキーに従って配列を並べ替えます
- 17. 2sxc従業員アプリケーションビジュアルクエリで並べ替えのリストを並べ替え
- 18. datatable jquery apiの日付列を並べ替えるにはどうすればいいですか?
- 19. 投稿を日付と時間で並べ替えるにはどうすればいいですか?
- 20. どのように並べ替えられていないリストとdivを並べて強制しますか?
- 21. 異なる日付時刻形式を並べ替えるにはどうすればいいですか?
- 22. 数値辞書のリストを並べ替えるにはどうすればいいですか?
- 23. アルファベット順の並べ替えられていないリストを並べ替え
- 24. 並べ替えられていないリストをドロップダウンメニューにする
- 25. 2つのリストの並べ替えリストの1の順序に従って
- 26. Rubyで日曜日の間に日曜日を取得するにはどうすればいいですか?
- 27. オブジェクトのプロパティに従ってJava ArrayListを並べ替えます
- 28. Arraylist内のオブジェクトをプロパティに基づいて並べ替えるにはどうすればいいですか?
- 29. 曜日名で辞書の配列を並べ替えるswift3
- 30. これらの条件に従ってRを使用してデータを並べ替えるにはどうすればよいですか?
「結果は期待どおりに機能していません。それがなければ、あなたの質問は「不明」で、下落して閉鎖される可能性があります。 – psubsee2003
"Monday"、 "Tuesday" ...とListOfRemainingDaysを初期化した日を並べ替えたい –
はい、@ psubsee2003あなたは儀式です。 –