我在列表中有以下对象:
public class DemoClass
{
public int GroupKey { get; set; }
public string DemoString { get; set; }
public object SomeOtherProperty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在,我想创建以下字典:
Dictionary<int, List<DemoClass>>
Run Code Online (Sandbox Code Playgroud)
我想List<DemoClass>按照属性进行分组GroupKey,但我不明白这是如何完成的以及一些帮助.
在思考了一下后,我实现了所需的行为:
var groupedDemoClasses = from demoClass in mySepcialVariableWhichIsAListOfDemoClass
group demoClass by demoClass.GroupKey
into groupedDemoClass
select groupedDemoClass;
var neededDictionary = groupedDemoClass.ToDictionary(gdc => gdc.Key, gdc => gdc.ToList());
Run Code Online (Sandbox Code Playgroud)
但是,有没有办法把它变成一个单一的陈述?
我们有一个SVN设置,具有稳定的主干和不稳定的开发分支.开发工作(主要)在分支上完成,然后在部署之前合并到主干.
我使用git-svn作为我的SVN客户端.我从unstable到trunk的合并过程如下:
git svn fetch
git co -b trunk svn/trunk
git merge --no-ff svn/unstable
git svn dcommit
Run Code Online (Sandbox Code Playgroud)
svn/* 是远程SVN分支.
这当然要求在我完成之前没有人向行李箱提交任何东西,但这在实践中不是问题.
这个过程的好处是git现在在我的本地存储库中记录合并提交的父级.这对我的同事没有好处,但它允许git在我进行合并时计算共同的祖先.这是非常理想的.
这就是问题.当其他人合并时,git不知道它.这是一个例子:
o-...-A---o---C--- unstable
/
X--...--B---o---o--- stable
Run Code Online (Sandbox Code Playgroud)
不稳定的分支是在X点创建的.在A点,我们决定将不稳定分支的变化合并到B点的稳定分支.共同的祖先是正确的X.
由于合并未记录在git历史记录中,因此在C处的以下合并再次假定X是共同的祖先.我希望它是A,如下图所示:
o-...-A---o---C--- unstable
/ \
X---...---B---o---o--- stable
Run Code Online (Sandbox Code Playgroud)
获得一个看起来像图中所示的图表并不是绝对必要的.任何将A识别为共同祖先的图表都很好.
我有一些选择,例如正确使用git-filter-branch或"假"提交,它永远不会被SVN拒之门外.但是到目前为止,我的尝试都没有充分发挥作用.
我很感激你能提出的任何想法.该程序不必是自动的.合并是非常罕见的,我可以忍受"手工"这样做的痛苦.
我知道问题的答案可能很明显.但如果有人能给我一个明确的答案,那将会有所帮助.
问题是:java NIO包是否可以提供一些内存一致性保证?
场景是:
Thread A Thread B
[modify Object X]
[Send a request A over TCP by NIO]
[receive response for request A over TCP by NIO]
[read Object X]
Run Code Online (Sandbox Code Playgroud)
如果应用程序在线程A和线程B之间没有任何同步/安全引用脉冲,则线程A进行的修改是否对线程B可见.
非常感谢你的帮助.
对于我的项目,我正在尝试实现BitTorrent协议的一小部分,可在此处找到.具体来说,我想使用它的"Bencoding"部分,这是一种安全编码数据以便通过套接字传输的方法.格式如下:
8:a string => "a string"
i1234e => 1234
l1:a1:be => ['a', 'b']
d1:a1:b3:one3:twoe => {'a':'b', 'one':two}
Run Code Online (Sandbox Code Playgroud)
编码部分很简单,但解码变得非常麻烦.例如,如果我有一个字符串列表,我无法将它们分成单独的字符串.我尝试了几种不同的解决方案,包括PyParsing和自定义令牌解析器.我目前正在尝试使用正则表达式,它看起来相当不错,但我仍然挂在字符串问题上.我现在的正则表达式是:
(?P<length>\d+):(?P<contents>.{\1})
Run Code Online (Sandbox Code Playgroud)
但是,我似乎无法使用第一组作为第二组的长度.有什么好办法吗?或者我接近这一切都错了,答案就在我面前?
我正在玩一些使用原始html和JQuery的想法.我做的一件事是创建一个包含一组行的表元素.
<table id="MyTable" >
<tr>
<td>Title</td>
</tr>
<tr>
<td>1</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>3</td>
</tr>
<tr>
<td>4</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
但是,当我在FireFox + Firebug,IE8开发人员工具栏或Google Chrome JavaScript调试器中查看代码时......所有这些代码都显示了围绕所有tr节点的tbody元素.
我并不反对这种情况......但这是标准行为吗?
我有一个NSString或者NSMutableString想要获得特定角色的出现次数.
我需要为很多字符做这个 - 在这种情况下是大写的英文字符 - 所以它很快就会很好.
我想知道正则表达式中tilde运算符的含义是什么.
我有这样的声明:
if (!preg_match('~^\d{10}$~', $_POST['isbn'])) {
$warnings[] = 'ISBN should be 10 digits';
}
Run Code Online (Sandbox Code Playgroud)
我发现这个文件解释了代字号的含义: ~
它说这=~是一个perl运算符,意味着对这个正则表达式运行这个变量.
但为什么我的正则表达式包含两个波浪号运算符?
我有一个查询,它在WHERE子句中执行了许多连接并且有一些标准,我最终得到的结果基本上如下所示:
| userId | date | otherData |
|--------+------------+------------|
| 1 | 2008-01-01 | different |
| 1 | 2009-01-01 | info |
| 1 | 2010-01-01 | for |
| 2 | 2008-01-01 | each |
| 3 | 2008-01-01 | row |
| 3 | 2009-01-01 | here |
Run Code Online (Sandbox Code Playgroud)
因此,对于每个用户而言,过去会有一个或多个日期,以及将来有0个或更多日期.
我需要以某种方式将数据集减少到每个用户一行,只选择具有最近传递日期的行.也就是说,无论添加什么魔法GROUP BY或HAVING子句,上面的结果都是这样的:
| userId | date | otherData |
|--------+------------+------------|
| 1 | 2009-01-01 | info |
| 2 | 2008-01-01 | …Run Code Online (Sandbox Code Playgroud)