相关疑难解决方法(0)

计数与集合中的长度与大小

通过使用大量编程语言和库,我注意到用于集合中元素总数的各种术语.

最常见的似乎是length,countsize.

例如.

array.length
vector.size()
collection.count
Run Code Online (Sandbox Code Playgroud)

是否有任何首选术语?它取决于它是什么类型的集合?即.可变/不可变

是否倾向于将其作为属性而不是方法?

collections terminology naming-conventions semantics

160
推荐指数
4
解决办法
9万
查看次数

是否值得初始化List <T>的集合大小,如果它的大小合理地知道?

List<T>如果合理地知道它的初始化是否值得?

编辑:进一步提出这个问题,在阅读完第一个答案之后,这个问题实际上归结为什么是默认容量以及如何进行增长操作,是否将容量增加一倍等?

c# generics list

35
推荐指数
3
解决办法
6816
查看次数

通用列表在c#中添加空值

我有一个名为connectedEntites的通用列表,我在for循环中将项添加到此列表中.我在添加之前进行空检查.但即便如此,每当将项添加到此时,List<>也会添加空值.我做了调试,但现在可以添加一个空值.由于执行读取操作时该空值,程序崩溃(因为这是一个COM程序).

下面是该类的代码

public class EntityDetails
{
    public ObjectId objId { get; set; }
    public Handle objHandle { get; set; }
    public string className { get; set; }

    public override bool Equals(object obj)
    {
        if (obj == null) return false;
        EntityDetails objAsEntityDetails = obj as EntityDetails;
        if (objAsEntityDetails == null) return false;
        else return Equals(objAsEntityDetails);
    }

    public bool Equals(EntityDetails other)
    {
        if (other == null)
            return false;

        return (this.objId.Equals(other.objId));
    }
}`
Run Code Online (Sandbox Code Playgroud)

下面是您可以看到空值的图像,并且在添加项目时容量也会翻倍,但计数显示正确的值.

调试模式下的通用列表

c# generic-list

3
推荐指数
1
解决办法
1400
查看次数

流的容量与长度的关系

当我将一些流写入新的内存流时,内存流的长度和容量最初都设置为0,并随着写入过程一起增长.但在某些时候,容量增长的速度要快于长度.
写操作完成后,我得到正确的长度(与原始输入流的长度相同),但容量更大.
这是对的吗?
它们不应该是一样的吗?
我找不到任何关于它的信息

c# memorystream copy stream capacity

1
推荐指数
1
解决办法
3554
查看次数

循环遍历列表会抛出超出界限的异常C#

有人会帮我理解这个for循环有什么问题吗?为什么我会超出界限异常呢?

此特定列表的容量设置为8.

public static List<Beds> BedsList = new List<Beds>(8); 

private int GetFirstAvailableBed()
    {
        var result = 0;

        for (int i = 0; i < Beds.BedsList.Capacity; i++)
        {
            if (Beds.BedsList[i] == null) // Here is trhowing the exception
            {
                result = i;
                break;
            }
        }
        return result;
    }
Run Code Online (Sandbox Code Playgroud)

c# loops list

0
推荐指数
1
解决办法
87
查看次数