'Updating an existing List using Linq in C#
I have a list and data as follows.
public class Test
{
public int Id {get;set;}
public string Name {get;set;}
public string Quality {get;set;}
}
Test test = new Test();
//db call to get test data
//test = [{1,'ABC','Good'},{2,'GEF','Bad'}]
I have to modify the list such that Name should be only the first 2 characters and Quality should be the first letter.
Expected Output:
//test = [{1,'A','G'},{2,'GE','B'}]
I tried to achieve with Linq foreach as follows. But I am not sure to write conditional statements inside forloop within Linq which resulted in error.
test.ForEach(x=> return x.Take(1))
Solution 1:[1]
You can use simply use String.Substring as follows:
test.ForEach(s =>
{
s.Name = s.Name.Substring(0, 2);
s.Quality = s.Quality.Substring(0, 1);
});
Thanks, @Tim for pointing out that if Name or Quality is short then this code throws an exception. See Problem with Substring() - ArgumentOutOfRangeException for the possible solutions for that.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 |
