在我的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();
}
答案 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>
,因此当它们可用时,它们可以使用任何此类方法。