Jus*_*ner 65
如果你使用C#3.0或更好......
using System.Linq;
public Car[] Filter(Car[] input)
{
return input.Where(c => c.IsAvailable).ToArray();
}
Run Code Online (Sandbox Code Playgroud)
如果您无法访问LINQ(您使用的是旧版本的.NET)...
public Car[] Filter(Car[] input)
{
List<Car> availableCars = new List<Car>();
foreach(Car c in input)
{
if(c.IsAvailable)
availableCars.Add(c);
}
return availableCars.ToArray();
}
Run Code Online (Sandbox Code Playgroud)
Tim*_*ter 22
令人惊讶的是,这个问题缺乏最自然,最有效的答案: Array.FindAll
Car[] availableCars = Array.FindAll(cars, c => c.IsAvailable);
Run Code Online (Sandbox Code Playgroud)
如果它是一个List<Car>也有一个List.FindAll.
最简单的方法:
Car[] cars = //...
Car[] filtered = cars.Where(c => c.IsAvailable).ToArray();
Run Code Online (Sandbox Code Playgroud)
可能更高效:
Car [] cars = //...
List<Car> filteredList = new List<Car>();
for(int i = 0; i < cars.Length; i++)
{
if(cars[i].IsAvailable)
filteredList.Add(cars[i]);
}
Car[] filtered = filteredList.ToArray();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
61477 次 |
| 最近记录: |