Nói rằng tôi có một loạt các string
s như thế này:Trong LINQ, tôi có thể chọn nhiều mục không?
string [] foos = {
"abc",
"def",
"ghi"
};
Tôi muốn có một bộ sưu tập mới có chứa mỗi chuỗi và ngược lại của nó. Vì vậy, kết quả nên là:
"abc",
"cba",
"def",
"fed",
"ghi",
"ihg"
Tôi chỉ có thể lặp qua mảng, nhưng điều này là khá vụng về:
string Reverse (string str)
{
return new string (str.Reverse().ToArray());
}
List<string> results = new List<string>();
foreach (string foo in foos) {
results.Add (foo);
results.Add (Reverse(str));
}
Có cách nào để làm điều này trong LINQ? Một cái gì đó như
var results = from foo in foos
select foo /* and also */ select Reverse(foo)
Cảm ơn! Tôi đã kết thúc bằng cách sử dụng 'foos.Concat (foos.Select (Reverse));', vì thứ tự không quan trọng, nhưng những thứ về mệnh đề 'from' lồng nhau là thông tin tốt để giấu đi trong tương lai. –