相关疑难解决方法(0)

阵列与列表的性能

假设您需要有一个需要经常迭代的整数列表/数组,我的意思是非常频繁.原因可能有所不同,但它说它是高容量处理的最内循环的核心.

通常,由于其大小的灵活性,人们会选择使用列表(列表).最重要的是,msdn文档声称列表在内部使用数组,并且应该执行速度快(使用Reflector快速查看确认这一点).不用说,有一些开销.

有没有人真正测量过这个?通过列表迭代6M次与阵列相同的时间?

.net arrays generics performance list

181
推荐指数
5
解决办法
15万
查看次数

为什么我不能这样做:dynamic x = new ExpandoObject {Foo = 12,Bar ="12"}}

我做错了什么,或者以下代码真的不可能?

dynamic x = new ExpandoObject { Foo = 12, Bar = "twelve" };
Run Code Online (Sandbox Code Playgroud)

如果这确实不可能,是否有另一种单行方式来实例化具有两个属性的ExpandoObject?

为什么C#团队会选择禁止使用与常规对象,匿名对象和枚举/列表相同的初始化语法?

更新

我问过这个问题是因为我试图向珍珠爱好者展示C#的酷炫新动态特性,但后来由于无法做到我认为是一个逻辑实例化的东西而陷入困境ExpandoObject.感谢Hans Passant的回答,我意识到这ExpandoObject是错误的工具.我的真正目标是使用C#的动态功能从方法返回两个命名值.汉斯指出,dynamic关键字对此非常完美.我没有需要一个ExpandoObject完成它的所有开销.

因此,如果您想从方法中返回一对命名值,并且您不关心类型安全性,智能感知,重构或性能,这可以很好地工作:

public dynamic CreateFooBar()
{
    return new { Foo = 42, Bar = "Hello" };
}
Run Code Online (Sandbox Code Playgroud)

用法:

dynamic fooBar = CreateFooBar();
var foo = fooBar.Foo;
var bar = fooBar.Bar;
Run Code Online (Sandbox Code Playgroud)

c# dynamic expandoobject

60
推荐指数
4
解决办法
2万
查看次数

在C#中动态创建数组

如何在C#中动态创建数组?

c#

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

C#数组,如何创建空数组?

我正在学习 c#,我的主要语言现在是 php。我想知道如何(或是否)在 c# 中创建一个空数组。

在 php 中,您可以创建一个数组,然后向其中添加任意数量的条目。

$multiples=array();
$multiples[] = 1;
$multiples[] = 2;
$multiples[] = 3;
Run Code Online (Sandbox Code Playgroud)

在 C# 中,我在做类似的事情时遇到了麻烦:

int[] arraynums = new int[];
arraynums[] = 1;
arraynums[] = 2;
arraynums[] = 3;
Run Code Online (Sandbox Code Playgroud)

这给出了错误“数组创建必须具有数组大小或数组初始值设定项。” 如果我不知道要输入多少个条目,我该怎么做?有没有解决的办法?

php c# arrays

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

C#Struct数组但不是类数组

我能够创建一个我创建的结构数组,但是我在为的数组做同样的事情时遇到了麻烦.我(微弱地)意识到这可能不是最好的方法,但我很感激帮助弄清楚发生了什么.

我大约需要2天时间学习C#,而且我正在离开MS Office-VBA,如果这能让你知道我在做什么.无论如何,我正在关注一个在线参考,并一直试图玩到目前为止我学到的东西.这个问题是我演奏的结果.

首先,让我用一些代码片段描述我对struct所做的事情,以及该结构的数组.

我已经能够创建一个名为Machines 的结构 ...

// play with structs
struct Machines
{
    // vars for struct
    private string model, SN;
    private int hours;

    // assign values
    public void AssignValues(string model_in, string SN_in, int hours_in)
    {
        model = model_in;
        SN = SN_in;
        hours = hours_in;
    }

    // display values
    public void DisplayValues()
    {
        Console.WriteLine("Model: {0}", model);
        Console.WriteLine("SN: {0}", SN);
        Console.WriteLine("Hours: {0}", hours);
    }
};
Run Code Online (Sandbox Code Playgroud)

......事情似乎工作得很好:

public static void Main()
{ …
Run Code Online (Sandbox Code Playgroud)

c#

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

在不指定密钥C#的情况下向数组添加值

就像PHP和其他一些语言一样,有没有办法在不指定索引的情况下向数组添加值?

int[] aWhich = {};

aWhich[] = 1;
Run Code Online (Sandbox Code Playgroud)

谢谢.

c# arrays

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

在C#中从数组中删除项

 Random rand = new Random();
        var list = new object[] { 1, 2, 3, "A", "B", "C" };
        object item = list[rand.Next(0, list.Length)];
Run Code Online (Sandbox Code Playgroud)

我想返回项目然后从列表[]中删除它

c#

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

标签 统计

c# ×6

arrays ×3

.net ×1

dynamic ×1

expandoobject ×1

generics ×1

list ×1

performance ×1

php ×1