小编und*_*ned的帖子

IEnumerable和订单

我有一个关于这个问题顺序IEnumerable.

据我所知,迭代IEnumerable是伪代码可以用以下方式编写:

while (enumerable.HasNext())
{
    object obj = enumerable.Current;
    ...
}
Run Code Online (Sandbox Code Playgroud)

现在,假设,需要对已排序的集合进行操作.可以在这种情况下使用IEnumerable,还是尝试IList使用索引支持的其他方法(即)?

换句话说:合同是否IEnumerable一般对订单作出任何保证?

因此,IEnumerable对于保证排序的通用接口而言,这不是一个合适的方法.新的问题是什么接口或类应该用于带有顺序的不可变集合?ReadonlyCollectionIList?它们都包含Add()方法(甚至没有在前者中实现).

我自己的想法:IEnumerable不对订购提供任何保证.正确的实现可以在不同的枚举中以不同的顺序返回相同的元素(考虑SQL查询)

我知道LINQ First(),但如果IEnumerable不说一下它的排序,这个扩展是没用的.

.net c# collections ienumerable

42
推荐指数
3
解决办法
2万
查看次数

通过接口枚举 - 性能损失

我与我的同事有一点争议(这非常接近圣战:))关于通过枚举VS通过枚举访问列表的性能.为了操作一些事实,我写了以下测试:

   static void Main(string[] args)
    {
        const int count = 10000000;

        var stopwatch = new Stopwatch();

        var list = new List<int>(count);

        var rnd = new Random();

        for (int i = 0; i < count; i++)
        {
            list.Add( rnd.Next());
        }

        const int repeat = 20;

        double indeces = 0;
        double forEach = 0;

        for (int iteration = 0; iteration < repeat; iteration++)
        {
            stopwatch.Restart();
            long tmp = 0;
            for (int i = 0; i < count; i++)
            {                    
                tmp …
Run Code Online (Sandbox Code Playgroud)

c# performance ienumerable list

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

什么是在Objective-C中在零和非零整数值之间切换的最快方法?

我在一些Objective-C代码中有一个整数"myInt".myInt用作布尔值...因此我只对零值或非零值感兴趣.我想快速在零和非零值之间切换.最快的方法是什么?

这是我到目前为止所尝试的:(所有这些工作)

试试1:

// myInt is initialized to 0
if(myInt == 0){
    myInt = 1;
}else{
    myInt = 0;
}
Run Code Online (Sandbox Code Playgroud)

试试2:

myInt = !myInt;
Run Code Online (Sandbox Code Playgroud)

尝试3:

myInt ^= 0xffffffff;
Run Code Online (Sandbox Code Playgroud)

我意识到我可以用一个分析器来测量性能...但是我决定在SO上问,因为我希望其他人(我自己)可以从这个问题所激发的讨论中学到一些东西.

performance objective-c

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

隐藏从Sandcastle生成的文档中继承自Object的方法?

如何从Sandcastle生成的文档中隐藏从Object类继承的方法(如Equals,Finalize,GetHashCode,GetType等...).我有一个名为LicenseManager的类,它有一个方法,而Object继承的方法会阻塞显示.

我正在使用最新版本的Sandcastle + Sandcastle帮助文件生成器.

http://cl.ly/3Y2p1C0m1a3f160z0y2v

c# documentation sandcastle

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