Niedawno natknąłem poniżej kawałek kodu w naszej aplikacji-1 w indeksie listy w języku C#
var updateDefinition = new UpdateDefinitionBuilder<OverviewProfile>()
.Set(a => a.Advisors[-1].IsCurrent, advisor.IsCurrent);
W powyższym kodzie, Advisors
jest List
i UpdateDefinitionBuilder
jest z kierowcą MongoDB.
Czy możesz podać mi numer -1 w indeksie listy?
Montaż po komentarzach poniżej/odpowiedzi
Klasa OverviewProfile
jest jak poniżej:
public class OverviewProfile: BaseInvestorProfile
{
//Other properties
public List<Advisor.View.Advisor> Advisors { get; set; }
public OverviewProfile(int id): base(id)
{
Advisors = new List<Advisor.View.Advisor>();
}
}
I to jest ten kod obróbka. Ten kod aktualizuje dane do bazy danych mongo na podstawie warunku. W tej klasie nie ma innych metod, tylko inne właściwości.
Jest to jedna klasa, ale to samo dotyczy właściwości wielu klas, a nawet jeśli dodamy nową właściwość i sprawdzimy, to działa.
To nie powinno w ogóle działać. Zwykle indeks o wartości -1 jest zwracany za pomocą metod takich jak 'InfexOf', aby zwrócić pierwsze wystąpienie konkretnej instancji. -1 oznacza zazwyczaj, że tego przedmiotu nie znaleziono. Poza tym indeks -1 przekazany do 'Listy' spowoduje 'ArgumentException', ponieważ indeks nie może być mniejszy od zera. –
HimBromBeere
Czy możliwe jest, że osoba wdrażająca lub doradcy zastąpiła indeksator nawiasów kwadratowych? Mogę się domyślać, że używają wartości do wszystkich elementów na liście. Ale to naprawdę nieprzyjemne. – LordWilmore
Założę się, że '.Advisors' jest * nie * instancją listy .NET' List '. Jest to specjalna implementacja, która przeciążyła operatora '[index]', tak jak powiedział LordWilmore, i że '-1' odnosi się do ostatniego wpisu na liście. –
Michael