小编Kon*_*ran的帖子

正则表达式运算符的顺序(.. | .. ... .. | ..)

(..|. .. .|..)运算符中表达式的优先级顺序是什么- 从左到右,从右到左或其他什么?

c# regex

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

为什么stackalloc不能与引用类型一起使用?

如果stackalloc与参考类型一起使用如下

var arr = stackalloc string[100];
Run Code Online (Sandbox Code Playgroud)

有一个错误

不能获取地址,获取大小,或声明指向托管类型的指针('string')

为什么会这样?为什么CLR不能声明指向托管类型的指针?

c# stackalloc

8
推荐指数
2
解决办法
1258
查看次数

找到具有最大值属性的元素的速度更快

通常,要找到具有最大值属性的元素,我喜欢这样

var itemWithMaxPropValue = collection.OrderByDescending(x => x.Property).First();
Run Code Online (Sandbox Code Playgroud)

但从性能的角度来看,这是好方法吗?也许我应该做这样的事情?

var maxValOfProperty = collection.Max(x => x.Property);
var itemWithMaxPropValue = collection
                                 .Where(x => x.Property == maxValueOfProperty).First();
Run Code Online (Sandbox Code Playgroud)

c# linq collections performance

7
推荐指数
2
解决办法
1477
查看次数

接线员?和扩展方法

.始终调用带有运算符的扩展方法,即使对象为空而不抛出NullReferenceException.通过使用运算符,?.它永远不会调用.例如:

using System;

public class Program
{
    public static void Main()
    {
        A a = null;
        a.b(); // works
        a?.b(); // doesn't work
    }
}

public class A { }

public static class ext
{
    public static void b(this A a)
    {
        Console.WriteLine("I'm called");
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么在这种情况下不调用扩展方法?这是一个ambiguos功能?

c# c#-6.0

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

标签 统计

c# ×4

c#-6.0 ×1

collections ×1

linq ×1

performance ×1

regex ×1

stackalloc ×1