簡體   English   中英

使用Linq從列表中過濾空屬性

[英]Filter null properties from list using Linq

我有一個方法可以接受一個變量,該變量具有與其連接的屬性列表。 我需要做的是創建一個linq查詢,該查詢將標記進入的當前變量為缺少“地址”,並將其添加到列表中。

    public void Teachers(List<Teacher> teachers)
    {
        foreach (Name name in teachers)
        {
            int age = program.CalculateAge(name.BirthDate.Year);

            Name address = FilterAddress(name);

            // Output Teachers Name - First Name, Last Name
            if (name.Type.Equals(Name.NameType.Teacher))
            {
                OutputToConsole(name.FirstName, name.LastName, age);
                program.WriteAddress(name);
            }
        }
        Console.WriteLine();
    }

上面是將當前變量在foreach循環中添加到FilterAddress方法的方法。 下面是傳遞變量的位置。 此變量具有與其連接的名為“地址”的列表屬性。 該地址可以為空。 我需要選擇地址為null的每個名稱並將其添加到列表中。 但是正如您猜到的那樣,下面的我的LINQ代碼不起作用,只是中斷了。

    public Name FilterAddress(Name name)
    {
        var NullItems = name.Select(x => x.Addresses).OfType<Name>();

        return NullItems;
    }
   public Name[] FilterAddress(Name name)
    {
        return name.Where(x => string.IsNullOrEmpty(x.Addresses))
                                .Select(x => x.Name)
                                .ToArray();
    }

只需要在查詢中添加“如果為空”檢查,以返回地址是否為空。

var NullItems = name.Where(x => x.Addresses == null);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM