Ako pridať ďalšie zoradiť ak reťazec začína deň?

0

Otázka

Ja by som chcel robiť ďalšie zoradiť podľa dátumu, v ktorých hodnota sa začína s dátumom("01/01/2000 opis"). je to možné?

       var result = await
   (from book in db.booksTable
          where book.IdCategory == request.bookCategory
          select new 
          {
                 Author = book.Author ?? "unknown",
                 Opinions = (from opinion in db.opinionsTable
                 join critic in db.criticTable on opinion.IdCritic equals critic.Id into c
                 from critic in c.DefaultIfEmpty()
                 orderby critic.order, HERE additional orderby
                 where book.id == opinion.IdBook && critic.order != null
                 select new
                 {
                        Value = opinion.Text ?? "empty",
                        critic.Topic
                 }).ToList()    
          }
   ).ToListAsync();

   my Value:
   "example"
   "Sample description1"
   "01/12/2021 other description"
   "Sample description2"
   "05/01/2021 other description"
   "09/01/2000 other description"
c# linq
2021-11-23 21:45:36
1

Najlepšiu odpoveď

1

Implementovať statická metóda, ktorá porovná dva reťazce:

public static int JerryCompare(string left, string right)

V rámci tejto metódy, skúste analyzovať dátum.

string potentialDateLeft = left.Split(' ', 1)[0];
if (DateTime.TryParse(potentialDate, out DateTime leftDateTime)) { ... }

Potom, v závislosti na vašej logiky (chceš položky s dátumy prvý? naposledy?), porovnať dátumy a názvy a vrátiť -1 ak "vľavo" je pred "právo", 0, ak sú si rovní, a 1, ak "vľavo" prichádza po "právo".

Potom, zoraďte zoznam pomocou

myListOfTitles.Sort(JerryCompare);

Kde myListOfTitles je zoznamu, ktoré ste dostali od vášho dopytu vyššie.

2021-11-23 22:06:06

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................