小编Sac*_*eph的帖子

正确使用'收益率'

产量关键字是其中的一个关键字,在C#是继续迷惑我,而且我正确使用它,我从来没有自信.

以下两段代码中,哪个是首选,为什么?

版本1:使用收益率返回

public static IEnumerable<Product> GetAllProducts()
{
    using (AdventureWorksEntities db = new AdventureWorksEntities())
    {
        var products = from product in db.Product
                       select product;

        foreach (Product product in products)
        {
            yield return product;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

版本2:返回列表

public static IEnumerable<Product> GetAllProducts()
{
    using (AdventureWorksEntities db = new AdventureWorksEntities())
    {
        var products = from product in db.Product
                       select product;

        return products.ToList<Product>();
    }
}
Run Code Online (Sandbox Code Playgroud)

c# yield-return

873
推荐指数
13
解决办法
24万
查看次数

使用<input type ="file">时限制文件格式?

当用户单击<input type="file">HTML 中元素中的"浏览"按钮时,我想限制可从本机OS文件选择器中选择的文件类型.我有一种感觉,这是不可能的,但我想知道是否有一个解决方案.我想完全依赖于HTML和JavaScript; 请不要闪光.

html types file

595
推荐指数
10
解决办法
47万
查看次数

如何更新git浅层克隆?

背景

(对于tl; dr,请参阅下面的#questions)

我有多个git存储库浅克隆.我使用的是浅克隆,因为它与脏克隆相比要小得多.每个人都克隆着做git clone --single-branch --depth 1 <git-repo-url> <dir-name>.

这工作正常,但我没有看到如何更新它.

当我用标签克隆时,更新没有意义,因为标签是冻结的时间点(据我所知).在这种情况下,如果我想更新,这意味着我想要通过另一个标签克隆,所以我只是rm -rf <dir-name>再次克隆.

当我克隆了主分支的HEAD然后想要更新它时,事情变得更加复杂.

我试过git pull --depth 1但是虽然我不想把任何东西推到远程存储库,它抱怨它不知道我是谁.

我试过了git fetch --depth 1,但是虽然它似乎更新了一些东西,但我检查它是不是最新的(远程存储库上的某些文件的内容与我克隆上的文件不同).

/sf/answers/1435601401/之后,我试过git fetch --depth 1; git reset --hard origin/master,但有两件事:第一,我不明白为什么git reset需要,第二,尽管文件似乎是最新的,但仍有一些旧文件,以及git clean -df不会删除这些文件.

问题

让克隆创建git clone --single-branch --depth 1 <git-repo-url> <dir-name>.如何更新它以达到相同的效果rm -rf <dir-name>; git clone --single-branch --depth 1 <git-repo-url> <dir-name>?或者是rm -rf <dir-name>再次克隆唯一的方法?

注意

这不是如何在不增加主要仓库大小的情况下更新浅层克隆子模块 …

git git-clone

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

当用作Node.js的JS Engine时,Microsoft的ChakraCore是否比Google的V8提供任何性能优势

[ 我编辑了我的问题,将场景缩小到只有Node.js. 请重新打开它.这是一个有用的问题,正如ChakraCore还处于很小的年龄时,可能会在未来及时提出正确的答案.但这个问题是有效的,应该在这里 ]

我们都知道/阅读/听说过谷歌V8引擎的荣耀,以及它如何让node.js成为多年来的美丽.

但现在我们可以选择在Microsoft的ChakraCoreGoogle的V8之间作为我们首选的JavaScript引擎进行选择,我想知道是否有人有任何证据或测试用例,他们发现其中一个比nodejs更有效.

请回复一些事实和结果,因为有人不应该使用/选择Chakra只是因为他/她喜欢微软或同样适用于V8和Google.

谢谢.

javascript c++ v8 node.js chakra

21
推荐指数
2
解决办法
8632
查看次数

编辑列表<T>中的项目

如何在下面的代码中编辑列表中的项目:

List<Class1> list = new List<Class1>();

int count = 0 , index = -1;
foreach (Class1 s in list)
{
    if (s.Number == textBox6.Text)
        index = count; // I found a match and I want to edit the item at this index
    count++;
}

list.RemoveAt(index);
list.Insert(index, new Class1(...));
Run Code Online (Sandbox Code Playgroud)

.net c# generic-list

19
推荐指数
4
解决办法
9万
查看次数

排行榜的高效数据结构,即记录列表(名称,点) - 高效搜索(名称),搜索(排名)和更新(点)

请建议一个表示记录列表的数据结构memory.每条记录由以下内容组成:

  • 用户名
  • 秩(基于点) - 可选字段 - 可以存储在记录中,也可以动态计算

数据结构应该有效地支持以下操作的实现:

  1. 插入(记录) - 可能会改变现有记录的等级
  2. 删除(记录) - 可能会更改现有记录的等级
  3. GetRecord(名称) - 可能是一个哈希表.
  4. GetRecord(秩)
  5. 更新(点数) - 可能会更改现有记录的排名

我的主要问题是GetRecord(rank)的有效实现,因为排名可以经常变化.

我猜内存DBMS是一个很好的解决方案,但请不要建议; 请建议一个数据结构.

algorithm hashtable list record data-structures

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

正则表达式匹配T-SQL脚本中的所有注释

我需要一个正则表达式来捕获T-SQL块中的所有注释.Expression需要与.Net Regex类一起使用.

假设我有以下T-SQL:

-- This is Comment 1
SELECT Foo FROM Bar
GO

-- This is
-- Comment 2
UPDATE Bar SET Foo == 'Foo'
GO

/* This is Comment 3 */
DELETE FROM Bar WHERE Foo = 'Foo'

/* This is a
multi-line comment */
DROP TABLE Bar
Run Code Online (Sandbox Code Playgroud)

我需要捕获所有注释,包括多行注释,以便我可以删除它们.

编辑:它有同样的目的,有一个表达式,采取一切但评论.

regex sql t-sql

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

在 Go 中,为什么 exec.Command() 失败但 os.StartProcess() 成功启动“winget.exe”?

  • exec.Command()为执行而工作C:\Windows\System32\notepad.exe
  • exec.Command()不适用于执行C:\Users\<username>\AppData\Local\Microsoft\WindowsApps\winget.exe. 失败并显示错误消息:
    • exec: "C:\\Users\\<username>\\AppData\\Local\\Microsoft\\WindowsApps\\winget.exe": file does not exist
  • 但是,os.StartProcess()适用于执行C:\Users\<username>\AppData\Local\Microsoft\WindowsApps\winget.exe

有人能告诉我为什么吗?

该代码片段不起作用。winget.exe未启动。

wingetPath := filepath.Join(os.Getenv("LOCALAPPDATA"),
    "Microsoft\\WindowsApps\\winget.exe")
cmd := exec.Command(wingetPath, "--version")
err := cmd.Start()
fmt.Println(err)
// exec: "C:\\Users\\<username>\\AppData\\Local\\Microsoft\\WindowsApps\\winget.exe": file does not exist
Run Code Online (Sandbox Code Playgroud)

但这有效:

wingetPath := filepath.Join(os.Getenv("LOCALAPPDATA"),
    "Microsoft\\WindowsApps\\winget.exe")
procAttr := new(os.ProcAttr)
procAttr.Files = []*os.File{nil, nil, nil}

// The argv slice will become os.Args in the new process,
// so it normally starts with the program name
_, err := os.StartProcess(wingetPath, []string{wingetPath, …
Run Code Online (Sandbox Code Playgroud)

windows go winget

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

如何在HTML 5 Canvas中添加可选文本?

我需要在画布上放置一个文本标签.可能吗?我怎样才能做到这一点?我知道有fillText但fillText没有给我流畅的输出文本.我还希望标签上的文本可以由用户复制,如果我使用fillText,这是不可能的.

javascript html5 canvas html5-canvas

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

如果两个在C中具有相同的名称而不使用第三个变量,如何将局部变量复制到全局变量?

我有一个全局变量和一个具有相同名称的局部变量.我可以将局部变量复制到全局变量(assign),而无需先将全局变量的值分配给某个临时变量(使用extern),然后将临时变量分配给全局变量吗?我需要做这样的事情:

#include<stdio.h>
int myVariable = 50;
void myFunction()
{
    int myVariable;
    myVariable /*global*/ = myVariable /*local*/;
}
Run Code Online (Sandbox Code Playgroud)

在C中是否有某种方法可以做到这一点(不使用临时变量(或数组中的指针))?我发现在C++,Java或C#中可以使用像这样的关键字,super,base等,但在C中找不到解决方案.

我已经提到过如何在C中访问带阴影的全局变量?

c

6
推荐指数
2
解决办法
1187
查看次数