We may access the last index of a list/array by the following:
var l = new List<string> {"1", "2a", "3cd"};
Console.WriteLine(l[^1]);
output: "3cd"
May I know if it is possible to cast the string ^1
to index object:
(second line is not working)
var s = "^1"
var index = (Index) s;
Console.WriteLine(l[index]);
To get the output: "3cd"
CodePudding user response:
To instantiate an Index
for one from the end, do this.
var index = new Index(1, true);
or
var index = Index.FromEnd(1);
var s = "^1"
just makes a string that uses the '^'
char, that can be used in code, to indicate an Index from end.
There is no conversion, explicit or implicit between string
and Index
.
If, for some reason you wanted to read a Index
struct from JSON, you could store both,
int value
and the optional
bool fromEnd = false
and use those to instantiate a new instance. This would be simpler than writing a parser for strings that contain index expressions.