Я пытался выяснить, как сделать следующий доступный день на основе настоящего дня, т.е. если сегодня пятница, затем выполните поиск в Массив в течение ближайшего ближайшего дня, например, если значения Array 1 [понедельник], 2 [вторник], 4 [четверг], 6 [суббота], тогда мой следующий день должен быть в субботу.Найти следующий доступный день в массиве строки
Вот что я пытался
//Here i'll get days like 0, 2, 3, 4, 6 pattern, and i'm spliting them based on comma to get single-single day value in array of string
string[] GetDays = DayInWeek.Split(','); [Here day patterns will change everytime, based on user selection]
//Here i'm looping to take each day and get Enum Text based on Enum Value
foreach (string FirstDay in GetDays)
{
//Here i'm converting the string value into int and passing to DayOfWeek Enum to get respective day
DayOfWeek DayChoosen = ((DayOfWeek)(Convert.ToInt32(FirstDay)));
//Here i have my actual day for example Friday
DayOfWeek StartDay = "Friday";
//Here i need condition to find next available day in the foreach i.e., after Friday next value should be Saturday, or Sunday, Monday & so on until Friday==Friday
if (StartDay == DayChoosen)
{
//End foreach
}
}
Как я уже говорил на основе сегодняшнего дня я должен найти следующий доступный день то есть, если в пятницу я должен искать в субботу, если суббота не существует, то воскресенье, понедельник и так до пятницы = в пятницу
Есть ли способ, что я могу сортировать getDays массив на основе значения startDay т.е. предположим, что getDays = [1,3,4,6] и startDay = 3, то getDays следует изменить, как [3,4,6,1] ... – Amar
@Rajesh Это еще один вопрос :) Вы можете отсортировать массив, найти индекс своего значения и сменить массив. Эта статья может быть полезна: http://stackoverflow.com/questions/1470982/how-to-shift-the-start-of-an-array-in-c –
Эквивалентный способ, при котором «источник» повторяется только один раз , является 'return getDays.OrderByDescending (d => d> startDay) .ThenBy (d => d) .First();'. Сначала заказываются дни, когда они превышают «startDay» или нет («false» меньше «true», поэтому используйте Descending), а затем самим целым. Может быть, это труднее читать, хотя и более прохладно. В этом случае вы можете отказаться от '.ToArray()'. –