小编Nel*_*mel的帖子

LINQ - 组特定类的类

这个问题类似于LINQ group one类型的项目,但是以更通用的方式处理.

我有一个包含各种派生类的List.我可能有这样的事情:

List<BaseClass> list = new List<BaseClass>() {
  new Class1(1),
  new Class2(1),
  new Class1(2),
  new Class3(1),
  new Class2(2),
  new Class4(1),
  new Class3(2)
};
Run Code Online (Sandbox Code Playgroud)

我试图使用LINQ对列表进行半排序,以便为某些具有base.GroupThisType == true的类保持自然顺序.具有GroupThisType的所有类应该在发生相同类型的第一个类的位置组合在一起.这是输出应该是什么样的:

List<BaseClass> list = new List<BaseClass>() {
  new Class1(1),
  new Class1(2),
  new Class2(1),
  new Class3(1),
  new Class3(2)
  new Class2(2),
  new Class4(1),
};
Run Code Online (Sandbox Code Playgroud)

编辑: 哎呀,忘了说这个结果是假设的(Class1和Class3).GroupThisType == true

.net c# linq

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

提交如何保持有序

关于Mercurial的快速​​提问.假设我的同事和我都有最新的主干副本.我们都做出了改变,然后我们都推动/拉动彼此之间的变化.

我猜测Mercurial根据提交日期按顺序保留更改(因为没有递增修订,只有GUID).那么,如果我的计算机的日期落后一天,并且在我的同事之后花了半天,会发生什么.我的变化会在我同事的前半天出现吗?

version-control mercurial

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

VS2010旗舰版.为什么我只看到"Silverlight 3".哪里是4?

我需要下载什么才能将我的Silverlight应用程序设置为版本4?我已经下载了wat,我认为它是Silverlight开发人员运行时的最新版本

asp.net visual-studio-2010 silverlight-4.0

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

突出显示搜索词(仅选择叶节点)

我想在页面上突出显示搜索字词,但不要弄乱任何HTML标记.我想的是:

$('.searchResult *').each(function() {
    $(this.html($(this).html().replace(new RegExp('(term)', 'gi'), '<span class="highlight">$1</span>'));
)};
Run Code Online (Sandbox Code Playgroud)

但是,$('.searchResult *').each匹配所有元素,而不仅仅是叶节点.换句话说,匹配的一些元素在其中包含HTML.所以我有几个问题:

  1. 我怎样才能匹配叶节点?
  2. 是否有一些内置的jQuery RegEx函数来简化事情?就像是:$(this).wrap('term', $('<span />', { 'class': 'highlight' }))
  3. 有没有办法做一个简单的字符串替换而不是RegEx?
  4. 还有其他更好/更快的方法吗?

非常感谢!

jquery highlighting

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

防止多行的竞争条件

我已经阅读了很多关于防止竞争条件的内容,但通常在upsert场景中有一条记录.例如: SQL Server 2005中的Atomic UPSERT

我有不同的要求,它是为了防止多行的竞争条件.例如,假设我有以下表结构:

GiftCards:
  GiftCardId int primary key not null,
  OriginalAmount money not null

GiftCardTransactions:
  TransactionId int primary key not null,
  GiftCardId int (foreign key to GiftCards.GiftCardId),
  Amount money not null
Run Code Online (Sandbox Code Playgroud)

可能有多个进程插入GiftCardTransactions,我需要阻止插入,如果SUM(GiftCardTransactions.Amount) + insertingAmount将继续GiftCards.OriginalAmount.

我知道我可以使用TABLOCKXGiftCardTransactions,但很明显,对于很多的交易,这将是不可行的.另一种方法是添加一个GiftCards.RemainingAmount列,然后我只需要锁定一行(虽然可能会锁定升级),但不幸的是,这对我来说不是一个选项(这是最好的选择吗?).

可能答案只是插入,然后选择SUM(GiftCardTransactions.Amount),并在必要时回滚,而不是试图阻止插入.这是一个边缘情况,所以我不担心不必要地使用PK值等.

所以问题是,如果不修改表结构并使用事务,隔离级别和提示的任何组合,我如何通过最小量的锁定来实现这一点?

locking race-condition sql-server-2008

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

自定义词典不使用代码分析

我的源代码中有一个类:

public class TypeUserdef : SymbolType
Run Code Online (Sandbox Code Playgroud)

这是一个用于XML序列化的DTO,现在代码分析报告了一个警告:

MSBUILD : warning CA1704: Microsoft.Naming : Correct the spelling of 'Userdef' 
in type name 'TypeUserdef'.
Run Code Online (Sandbox Code Playgroud)

我将条目放入用户词典(我的项目中的客户词典设置为buildAction ="CodeAnalysisDictionary"):

<Dictionary>
  <Words>
    <Recognized>
      <word>userdef</word>
    </Recognized>
  </Words>
</Dictionary>
Run Code Online (Sandbox Code Playgroud)

现在有趣的是,这本词典在很多术语中表现得非常好.只是术语"userdef"和"vars"报告错误.(甚至可以忽略同一代码文件中的拼写错误).上述条款有什么特别之处?

naming code-analysis visual-studio-2013

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

在app.config中指定默认WCF端点

添加服务引用时,它会使用默认构造函数创建"MyServiceClient"类.如果我使用新的MyServiceClient(),我会收到一个错误:无法找到默认端点...如果我使用新的MyServiceClient("endpointName"),它就可以工作.

我想在app/web.config中指定一个默认端点,当我使用默认构造函数时,它将被使用.我知道我可以将该默认名称放在*.settings中并在我的应用程序中使用它,但只是想知道是否有任何内置方法来执行它.

wcf wcf-binding endpoint

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

处理null参数的存储过程

我确信这有一个非常简单的答案我没有找到...我在数据库中有一个简单的层次结构,其中每一行都有一个ParentId.如果ParentId IS NULL,则它是根元素.我有存储过程:

CREATE PROCEDURE GetByParent @parentId int
AS BEGIN SELECT * FROM TABLE1 WHERE ParentId = @parentId END
Run Code Online (Sandbox Code Playgroud)

如果我发送一个整数,它工作正常,但如果我发送NULL它变成ParentId = NULL,这在ANSI中不起作用.我知道有COALESCE(@parentId, ParentId),但是返回所有行时@parentId IS NULL.我可以做一个IF ELSE语句并复制查询(一个= @parentId和另一个IS NULL),但我确信有更好的方法.

sql-server null

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

使用返回IEnumerable

我遇到的有趣问题是完全有道理的.我有一个像这样的通用方法:

public TResult Run<TResult>(Func<SqlDataReader, TResult> resultDelegate)
{
   TResult result;

   using (SqlDataReader reader = command.ExecuteReader()) // command is SqlCommand with attached SqlConnection
   {
      result = resultsDelegate(reader);
   }

   // Some other unrelated code (but that's why result has a variable)

   return result;
}
Run Code Online (Sandbox Code Playgroud)

在一种情况下,resultDelegate返回类型(TResult)是IEnumerable<object>.问题是Run由于延迟执行,函数立即返回,处理SqlDataReader.稍后在代码中,当我尝试读取结果时(代表所做的reader.Read(),我得到了一个InvalidOperationException: Invalid attempt to call Read when reader is closed.

我很难找到解决这个问题的最佳方法.我知道我可以返回一个具体的清单,但如果可能的话我想避免这样做.我也可以在委托中移动using语句,但是再一次,如果我可以避免为每个委托做这个,那就太好了.有任何想法吗?

.net delegates using-statement deferred-execution

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

高负载系统的最佳架构

我无法在Microsoft堆栈和Java堆栈之间进行选择.我开始开发高负载系统.每天超过50万笔交易.最好的选择是Java堆栈还是微软?

.net java

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