This question already has an answer here:
Suppose we have a class called Dog with two strings "Name" and "Id". Now suppose we have a list with 4 dogs in it. If you wanted to change the name of the Dog with the "Id" of "2" what would be the best way to do it?
Dog d1 = new Dog("Fluffy", "1");
Dog d2 = new Dog("Rex", "2");
Dog d3 = new Dog("Luna", "3");
Dog d4 = new Dog("Willie", "4");
List<Dog> AllDogs = new List<Dog>()
AllDogs.Add(d1);
AllDogs.Add(d2);
AllDogs.Add(d3);
AllDogs.Add(d4);
You could do:
This will return the matching dog, else it will return
null
.You can then set the property like follows:
If the list is sorted (as happens to be in the example) a binary search on index certainly works.
Not sure what the LINQ version of this would be.
However, a safer version of that might be this: