程序不会进入foreach循环

时间:2017-09-13 10:57:39

标签: c# foreach

这是我的代码:

private List<Picture> items;

public List<Picture> Items
{
    get
    {
        if (items == null)
        {
            items = new List<Picture>();
            items = this.LoadAllItems();
        }

        return items;
    }

    set
    {
        this.items = value;
    }
}

public List<Picture> GetItemsBySearch(string searchTerm, string fieldName)
{
    DataAccess dbcontext = new DataAccess();
    string internalfield = dbcontext.GetInternalFieldNameByDisplayName(fieldName);
    List<Picture> PictureHits = new List<Picture>();

    var data = from Picture item in this.Items
               where item.GetType().GetProperty(internalfield).GetValue(item, null).ToString().Contains(searchTerm)
               select item;  

    foreach (Picture item in data)
    {
        PictureHits.Add(item);
    }

    return PictureHits;
}

data.Count包含88个项目,但不会进入foreach循环。

varforeach循环中不起作用吗?

Picture是一个包含filenameID等对象的类。

enter image description here

这就是&#34;数据&#34;包含所以它包含88个项目吗?

1 个答案:

答案 0 :(得分:2)

问题可能出在哪里?

var data = from Picture item in this.Items
               where item.GetType().GetProperty(internalfield) // threre
                   .GetValue(item, null).ToString().Contains(searchTerm) // might bean issue
               select item;  

尝试评论并重新评论。如果foreach可以使用,那么您就有了筛选所有数据的条件。