System.Array'不包含'Count'的定义

时间:2013-11-04 20:40:30

标签: c# asp.net

在我的C#项目中,我收到此错误,即count的定义不包含System.Array

protected void Page_Prerender(object sender, EventArgs e)
{
    FileInfo[] fileInfo;
    string UpFolder = Server.MapPath("~/data/images/");
    DirectoryInfo dir = new DirectoryInfo(UpFolder);
    fileInfo = dir.GetFiles();
    // here i am getting error
    int TotalImages = fileInfo.Count();
    for (int count = 0; count < TotalImages; count++)
    {
        Image image = new Image();
        image.ImageUrl = "~/data/images/" + fileInfo[count].ToString();
        image.ID = count.ToString();
        DataListImage.Controls.Add(image);
    }
    DataListImage.DataSource = dir.GetFiles();
    DataListImage.DataBind();

    string UpFolder1 = Server.MapPath("~/data/thumbnails/");
    DirectoryInfo dir1 = new DirectoryInfo(UpFolder1);
    DataListthumbnails.DataSource = dir1.GetFiles();
    DataListthumbnails.DataBind();
}

2 个答案:

答案 0 :(得分:19)

您不需要Count,而是可以将Length与数组一起使用以获取计数。

由于缺少using System.Linq;

,您收到错误

要获得TotalImages,您可以使用

int TotalImages = fileInfo.Length;

答案 1 :(得分:3)

虽然Count()不是“need”,因为该类型是一个数组,但错误是因为没有“使用”正确的命名空间。

Enumerable.Count()System.Linq命名空间中的LINQ 扩展方法。因此,它可以通过以下方式提供:

using System.Linq;

由于数组实现IEnumerable<T>,因此当它们可用时,它们可以使用任何此类方法。