小编E.B*_*ach的帖子

高效的Linq Enumerable的'Count()== 1'测试

与此问题类似,但为Linq重新说明:

您可以Enumerable<T>.Any()用来测试枚举是否包含数据.但是,如果不使用昂贵的计数操作,测试枚举是否包含单个值(即Enumerable<T>.Count() == 1)或大于单个值(即Enumerable<T>.Count() > 1)的有效方法是什么?

c# linq

30
推荐指数
4
解决办法
4250
查看次数

在Vim中对齐行尾注释?

在Vim内部,是否有一个格式化命令可以对齐一行结束注释?

例如在C++中,它将转为:

m_varName1;   // Comment 1
m_varName1AndABit;       // Command 1 and a bit
m_varName2;     // Comment 2
m_varName3ButReally2AndABit;   // Comment 3 (but really 2 and a bit)
Run Code Online (Sandbox Code Playgroud)

进入这个:

m_varName1;                   // Comment 1
m_varName1AndABit;            // Command 1 and a bit
m_varName2;                   // Comment 2
m_varName3ButReally2AndABit;  // Comment 3 (but really 2 and a bit)
Run Code Online (Sandbox Code Playgroud)

vim formatting comments

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

多参数linq表达式如何初始化其参数?

在这篇文章中,问题的解决方案是:

list.Where((item, index) => index < list.Count - 1 && list[index + 1] == item)

多参数(即(item, index))的概念对我来说有点令人费解,我不知道缩小谷歌搜索结果的正确用语.所以1)那叫什么?更重要的是,2)非可枚举变量如何初始化?在这种情况下如何index编译为int并初始化为0?

谢谢.

c# linq lambda

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

如何将输出重定向到Gvim作为要打开的文件列表?

我想findstr /m background *.vim | gvim打开*.vim包含background在单个gvim实例中的所有文件- 但我无法让管道工作.

这与此问题非常相似,但我不希望捕获stdin输出,而是希望GViM将输出视为要打开的文件列表 - 在Windows系统上,因此无法保证xargs.有任何想法吗?

windows vim findstr

9
推荐指数
2
解决办法
2579
查看次数

比较python中的两个类类型

我在模块中定义了两个类classes.py:

class ClassA(object):
    pass

class ClassB(object):
    pass
Run Code Online (Sandbox Code Playgroud)

在另一个模块中,我得到了模块的属性:

import classes

Class1 = getattr(classes, 'ClassA')
Class2 = getattr(classes, 'ClassA')
print type(Class1) == type(Class2)

Class3 = getattr(classes, 'ClassA')
Class4 = getattr(classes, 'ClassB')
print type(Class3) == type(Class4)
Run Code Online (Sandbox Code Playgroud)

两种类型比较都返回True,这不是我所期待的.

如何使用python的本机类型值比较类类型?

python types

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

LINQ中的高效列表自我比较?

这可能与此问题非常相似,但我想知道在C#和LINQ中最有效的方法是在同一列表中比较元素列表.

例如,在伪代码中我想这样做:

foreach(i in list)    
    foreach(j in list.Except(i))    
        Compare(j,i)
Run Code Online (Sandbox Code Playgroud)

我知道Except采用了一个可枚举而不是单个项目,可能不是最好的主意,但它应该说明我的意图.

有任何想法吗?

更新:

我想这个问题有点模糊.目标是迭代列表两次(使用LINQ),同时跳过该对(i, i); 无论Compare(i,j)实际做什么与我的问题无关.

有2箱子然后,一个地方(i,j) == (j,i)(i,j) != (j,i).对于前者,乔治·达克特(George Duckett)在下面的跳过解决方案可以解决这个问题,但后者呢?这是我原来使用的除进来,这样既(i,j)(j,i)将进行评估.

所以要澄清一下,有没有更好的方法来跳过列表中的元素,而不是list.Except(Enumerable.Repeat(i,1))

c# linq

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

在ViM中什么是Buffer 0?

vim命令buflisted(0),bufexists(0)如果打开单个文件,则返回true.

我不明白这一点,因为输出ls显示文件作为缓冲区1(buflisted(1)并且bufexists(1)还返回true).如果我在缓冲区0上尝试任何缓冲操作,我会收到错误消息Zero count.

这似乎是一个特殊的缓冲区,但我找不到任何告诉我缓冲区0用于什么的信息.有人可以帮忙吗?

谢谢!

vim buffer

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

Linq查询将重复项的子集减少到更大集合中的单个值?

是否有一个linq命令可以过滤掉序列中出现的重复项?

'4'的示例:

Original { 1 2 3 4 4 4 5 6 7 4 4 4 8 9 4 4 4 }
Filtered { 1 2 3 4 5 6 7 4 8 9 4 }
Run Code Online (Sandbox Code Playgroud)

谢谢.

c# linq

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

Git:通过符号链接克隆需要密码?

使用vim的vundle包管理器,我正在尝试将ps1插件克隆到我的机器上.我在Windows 7机器上,我的vimfile目录是符号链接的,所以即使我的git存储库位于D:,我的git命令正在C:上使用我的文件夹.

我的问题是,当我在symlink'ed文件夹上发出一个克隆命令时,系统会提示我输入一个github用户名和密码.在我的实际文件夹上发出相同的命令按预期工作,没有提示.

从Windows命令提示符我发出git命令

git clone --recursive https://github.com/pprovost/vim-ps1.git "D:\dev\git\.vim\bundle\vim-ps1"
Run Code Online (Sandbox Code Playgroud)

并且它按预期工作,但如果我尝试执行"通过"符号链接的命令

git clone --recursive https://github.com/pprovost/vim-ps1.git "C:\Users\ebeach\vimfiles\bundle\vim-ps1"
Run Code Online (Sandbox Code Playgroud)

我被提示输入github用户名和密码.

我试图通过github操纵符号链接的问题让我对这个答案感到困惑 - 我想知道为什么在这种特殊情况下我被提示输入用户名和密码.

谢谢!

- 更新 -

这可能是ps1包特有的,因为其他包似乎没有问题.例如,CtrlP github包克隆没有提示:

git clone --recursive https://github.com/kien/ctrlp.vim.git "C:\Users\ebeach\vimfiles\bundle\ctrlp.vim"
Run Code Online (Sandbox Code Playgroud)

但我仍然不知道为什么我带来了ps1包的提示.

git vim github add-on git-clone

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

PySide,PysideUIC和多重继承

我有一个继承pyside-uic生成的python类的对话框类,但我的问题是它无法扩展我添加另一个基类.

import sys
from PySide import QtGui
from mi_ui import Ui_Dialog

class Worker(object):
    def __init__(self):
        super(Worker, self).__init__()
        self.data = 1

class MainDialog(QtGui.QDialog, Ui_Dialog, Worker):
    def __init__(self):
        super(MainDialog, self).__init__()
        self.setupUi(self)

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    dlg = MainDialog()
    print dlg.data
    dlg.show()

    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

当我尝试扩展MainDialogWorker,super不调用Worker's __init__和print dlg.data失败,因为"AttributeError:'MainDialog'对象没有属性'data'"

我唯一的解决方法似乎是忽略super并__init__手动调用每个.

QtGui.QDialog.__init__(self)
Worker.__init__(self)
Run Code Online (Sandbox Code Playgroud)

这是我唯一的解决方案吗?

这适用于Python 2.7.

python inheritance pyside python-2.7

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