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

Posted

技术标签:

【中文标题】System.Array\' 不包含 \'Count\' 的定义【英文标题】:System.Array' does not contain a definition for 'Count'System.Array' 不包含 'Count' 的定义 【发布时间】:2013-11-15 14:27:34 【问题描述】:

在我的 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();

【问题讨论】:

【参考方案1】:

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

您收到错误是因为您缺少using System.Linq;

要获取TotalImages,您可以使用

int TotalImages = fileInfo.Length;

【讨论】:

我已经在使用 System.Linq 但是为什么我不能在这里使用 count ???因为计数和长度之间存在一些差异,因为我代表计数图像调整图像大小.. 与图像大小一样,它将相应地进行优化 @SiddiqBaig, Count 将返回数组中元素的总数,与长度相同,它与图像大小无关。请参阅***.com/questions/300522/… 了解长度与计数。【参考方案2】:

虽然Count() 不是“需要”,因为类型是数组,但错误是由于未“使用”正确的命名空间造成的。

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

using System.Linq;

由于数组实现了IEnumerable&lt;T&gt;,因此当它们可用时,它们可以利用任何此类方法。

【讨论】:

酷,我喜欢这种情况:)

以上是关于System.Array' 不包含 'Count' 的定义的主要内容,如果未能解决你的问题,请参考以下文章

为啥 System.Array 类实现 IList 但不提供 Add()

如何测试 System.Array 中的空元素

系统.数组。不包含“ToList”的定义

c#中array.sort()用法

System.Array 到 List 的转换

System.Array.CopyTo() 和 System.Array.Clone() 之间的区别