小编zer*_*0ne的帖子

LINQ Join的内存使用情况是多少?

  1. 如果两个IEnumerable(s)在内存中,加入它们的内存使用量是多少?假设选择所有列.是左表的大小+右表的大小+连接表中的行数?

  2. 如果两个IEnumerable(s)是由文件流定义的,那么如果它们太大而无法放入内存中,Join会抛出内存不足吗?或者它会加载到内存不足并多次运行扫描(类似于数据库连接)?

.net c# linq memory

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

有没有办法在C#中内联委托?

这是我正在处理的简化场景.循环结构有多种方法.

for (int i=0; i<I; i++) {
    // Do something
    for (int j=0; j<J; j++) {
        // Do something
        for (int k=0; k<K; k++) {
            // Do something
            Update(a,b,c);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在一种方法中,Update(a,b,c)是

a[i] += b[j] * c[k]
Run Code Online (Sandbox Code Playgroud)

在另一种方法中,它是

b[j] += a[i] * c[k]
Run Code Online (Sandbox Code Playgroud)

然而在另一种方法中,它是

c[k] += a[i] * b[j]
Run Code Online (Sandbox Code Playgroud)

目前,我的代码到处都是重复的.C#中是否有一个模式,以便我不重复代码?我很想使用委托,但似乎委托会降低性能(这在我的情况下是至关重要的).

有没有办法为这种情况编写宏或内联委托函数?

c# delegates inline

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

如何在保持语法的同时使这种功能样式的代码更具性能

我想写这个操作

Matrix.Multiply(source,target)
target.Add(offsets)
Run Code Online (Sandbox Code Playgroud)

在这种数学风格

target = Matrix * source + offsets;
Run Code Online (Sandbox Code Playgroud)

但是,我也很关心性能.(实际上,上面的操作将在紧密循环中运行.)我不想为每个矩阵向量乘法创建一个新向量,而为向量加法创建另一个新向量.

如何在C#或F#(或您知道的任何功能语言)中实现上述操作,以便可以实现样式和性能?

抱歉这个天真的问题.我确信这种愿望是如此根本.

c# f# ocaml functional-programming

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

熊猫:如何在groupby之后获得一个特定的群体?

我想通过一个名为"A"的列对数据帧进行分组,并检查某个特定的组.

grouped = df.groupby('A', sort=False)
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何访问组,例如,我希望如此

grouped.first() 
Run Code Online (Sandbox Code Playgroud)

会给我第一组

要么

grouped['foo'] 
Run Code Online (Sandbox Code Playgroud)

会给我A组=='foo'.

但是,熊猫并不像那样.

我在网上找不到类似的例子.

python pandas

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

无法为迭代器分配没有可行的重载'='错误

我有一个字段定义为

const vector<record>* data;
Run Code Online (Sandbox Code Playgroud)

其中记录定义为

const unique_ptr<vector<float>> features;
const float label;
Run Code Online (Sandbox Code Playgroud)

在我的主要代码中,我使用

vector<record>::iterator iter = data->begin()
Run Code Online (Sandbox Code Playgroud)

编译器对我的代码不满意,在迭代器分配行没有可行的重载'='错误.它还会产生此警告:

/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/iterator:1097:7: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from '__wrap_iter<const_pointer>' to 'const __wrap_iter<class MLx::Example *>' for 1st argument
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

c++ stl unique-ptr

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

Dispatcher.Invoke()与不创建任何线程

在WPF应用程序中,直接调用方法与传递方法有什么区别Dispatcher.Invoke()?基于我到目前为止所读到的内容,两者都在同一个UI线程中执行,不是吗?

示例代码

情况1:

public sealed partial class Window
{ 
    private void SomeEventHandler(object sender, EventArgs e) 
    {
        SomeMethod();
    }
}
Run Code Online (Sandbox Code Playgroud)

案例2:

public sealed partial class Window
{ 
    private void SomeEventHandler(object sender, EventArgs e) 
    {
        Dispatcher.Invoke(SomeMethod, DispatcherPriority.Send);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# wpf multithreading

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