Я полагаю, что после пустого значения, если для B нет значения, которое имеет тот же uid в A.
Если это так, IFNULL вернет заданное по умолчанию значение, указанное вами в случае, если параметр равен null (ISNULL используется в MSSQL):
SELECT A.value, IFNULL(B.value, '')
FROM A LEFT JOIN B
ON A.uid = B.uid
Это приведет к чему-то вроде:
test1 address1
test2 address2
test3
test4 address3
Если вы используете C # 3.0 или выше ...
using System.Linq;
public Car[] Filter(Car[] input)
{
return input.Where(c => c.IsAvailable).ToArray();
}
И если у вас нет доступа к 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();
}
Самый простой способ:
Car[] cars = //...
Car[] filtered = cars.Where(c => c.IsAvailable).ToArray();
Возможно более эффективный:
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();
var available = from c in cars where c.IsAvailable == true select c;
Или
var available = cars.Where(c => c.IsAvailable == true);
Простое решение - создать новый массив, пройти через входной массив и добавить в новый массив только те элементы, которые удовлетворяют вашим условиям, и вернуть новый массив:
List<Car> available = new List<Car>();
foreach (Car c in cars) {
if (c.IsAvailable) {
available.add(c);
}
}
//Here you can either just return the list, or create an array from it.