问题列表 - 第9063页

在stl和.net基本库默认搜索中使用哪种排序算法?

我现在正在研究一个不完整的合并排序版本.我用C++和C#实现了它.然后分别将它们与stl sort和array.sort()算法进行比较.在C++中,我得到了相同(有时更好)的结果.但是在C#中,我不得不使用不安全的代码来使用指针.在这里,性能与默认排序没有那么相似.所以,我想知道 -

1.在stl和.net基类库中使用了哪些算法?(更好的链接)
2.不安全的代码是否有性能问题?
3.关于衡量新算法性能的任何建议?

sorting algorithm stl base-class

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

在Python中将整数转换为字符串?

我想在Python中将整数转换为字符串.我是徒劳地捣蛋:

d = 15
d.str()
Run Code Online (Sandbox Code Playgroud)

当我尝试将其转换为字符串时,它显示的错误就像int没有调用任何属性一样str.

python string integer

1282
推荐指数
11
解决办法
323万
查看次数

New_Id() 和 Rand() SQLSERVER2005 之间的区别

newid() 函数如何在后台工作?

rand() 和 newid() 之间有什么区别?

哪个更有效率?

提前致谢。

sql-server-2005

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

方法缺少C#4.0中的困难:动态与RealProxy

有没有人知道一种方法来拦截dynamic方法调用(特别是那些将要提升RuntimeBinderExceptions的方法)RealProxy?我希望捕获异常并在其上实现'方法缺失',但它似乎在拦截器获得查看之前被抛出.

我的测试看起来像:

dynamic hello = MethodMissingInterceptor<DynamicObject>.Create();
Assert.AreEqual("World", hello.World());
Run Code Online (Sandbox Code Playgroud)

哪里World没有实际实施DynamicObject.拦截器是非常简单的-我希望检查IMethodReturnMessage.ExceptionRuntimeBinderException,并转发到是这样的:

public IMessage MethodMissing(IMethodCallMessage call)
{
    return new ReturnMessage(call.MethodBase.Name, new object[0], 0, call.LogicalCallContext, call);
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,我在拦截器中看到的只是一些调用GetType,而不是不存在的World方法.

失败了 - 有没有人知道是否有一个DynamicProxy版本在.NET 4.0上运行得很快但可能解决了这个问题?

c# proxy dynamic method-missing c#-4.0

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

如何更改XmlReader的字符编码

我有一个简单的XmlReader:

XmlReader r = XmlReader.Create(fileName);

while (r.Read())
{
    Console.WriteLine(r.Value);
}
Run Code Online (Sandbox Code Playgroud)

问题是,Xml文件中包含ISO-8859-9字符,这使得XmlReader抛出" Invalid character in the given encoding."异常.我可以<?xml version="1.0" encoding="ISO-8859-9" ?>在开头添加行来解决这个问题,但是我想以另一种方式解决这个问题,以防我无法修改源文件.如何更改XmlReader的编码?

.net c# xml encoding character-encoding

21
推荐指数
1
解决办法
4万
查看次数

94
推荐指数
3
解决办法
4万
查看次数

如何使用foreach修改通用列表中的项目?

我有以下通用列表,其中填充了一个字符串列表:

List<string> mylist =new List<string>();  
myList.add("string1");  
myList.add("string2");
Run Code Online (Sandbox Code Playgroud)

假设我想在每个字符串的末尾添加"test",我该如何以简单的方式完成?直觉上,我试过这个编译好了:

myList.ForEach(s => s = s + "test");  
Run Code Online (Sandbox Code Playgroud)

但是,如果我再查看列表的内容,则没有任何改变.我想我可以使用for循环迭代List但我正在寻找一些非常简单的东西,使用ForEach看起来非常整洁....但似乎不起作用.有任何想法吗?

c# foreach generic-list

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

在C#中快速/交错数组

我正在寻找de/interleave缓冲区的最快方法.更具体地说,我正在处理音频数据,所以我试图优化分配/组合通道和FFT缓冲区的时间.

目前我正在为每个数组使用一个带有2个索引变量的for循环,所以只加上操作,但所有托管数组检查都不会与C指针方法进行比较.

我喜欢Buffer.BlockCopy和Array.Copy方法,这些方法在处理通道时会花费大量时间,但是阵列无法拥有自定义索引器.

我试图找到一种方法来制作一个数组掩码,它将是一个带有自定义索引器的虚假数组,但在我的FFT运算中使用它时证明速度慢了两倍.我想编译器在直接访问数组时可以提取很多优化技巧,但无法优化通过类索引器进行访问.

我不想要一个不安全的解决方案,尽管从它的外观来看,这可能是优化此类操作的唯一方法.

谢谢.

这是我现在正在做的事情:

private float[][] DeInterleave(float[] buffer, int channels)
{
    float[][] tempbuf = new float[channels][];
    int length = buffer.Length / channels;
    for (int c = 0; c < channels; c++)
    {
        tempbuf[c] = new float[length];
        for (int i = 0, offset = c; i < tempbuf[c].Length; i++, offset += channels)
            tempbuf[c][i] = buffer[offset];
    }
    return tempbuf;
}
Run Code Online (Sandbox Code Playgroud)

c# arrays audio split

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

在Java中实现全局锁

关于Java中的同步,我有一个相对简单(也许是愚蠢的)问题.

我有同步块,在我的代码中获取各种对象的锁.在某些情况下,我想获取一个全局锁,它包含我的代码中的每个其他同步语句.

有没有一种奇特的方法在Java中执行此操作而不重写所有当前的同步代码?

例如,

线程t1

synchronized (o1)
{
    synchronized (o2)
    {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

线程t2

synchronized (global_lock)
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

当线程t2在同步块内时,不应允许线程t1获取o1和o2上的锁.

非常感谢,如果

java multithreading locking global

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

C#中引用类型变量的"ref"有什么用?

我理解如果我传递一个值类型(int,struct等)作为参数(没有ref关键字),该变量的副本将传递给该方法,但如果我使用该ref关键字,则传递对该变量的引用,不是新的.

但是使用引用类型(如类),即使没有ref关键字,也会将引用传递给方法,而不是副本.那么ref关键字与引用类型的用途是什么?


举个例子:

var x = new Foo();
Run Code Online (Sandbox Code Playgroud)

以下有什么区别?

void Bar(Foo y) {
    y.Name = "2";
}
Run Code Online (Sandbox Code Playgroud)

void Bar(ref Foo y) {
    y.Name = "2";
}
Run Code Online (Sandbox Code Playgroud)

c# parameters pass-by-reference pass-by-value

167
推荐指数
6
解决办法
4万
查看次数