фильтровать массив в C #

Я полагаю, что после пустого значения, если для 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
34
задан leora 16 December 2009 в 03:47
поделиться

4 ответа

Если вы используете 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();
}
64
ответ дан 27 November 2019 в 04:28
поделиться

Самый простой способ:

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();
2
ответ дан 27 November 2019 в 04:28
поделиться
var available = from c in cars where c.IsAvailable == true select c;

Или

var available = cars.Where(c => c.IsAvailable == true);
0
ответ дан 27 November 2019 в 04:28
поделиться

Простое решение - создать новый массив, пройти через входной массив и добавить в новый массив только те элементы, которые удовлетворяют вашим условиям, и вернуть новый массив:

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.
1
ответ дан 27 November 2019 в 04:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: