我有这样一张桌子:
rowInt Value
2 23
3 45
17 10
9 0
....
Run Code Online (Sandbox Code Playgroud)
列rowInt值是整数,但不是具有相同增量的序列.我可以使用以下sql按rowInt列出值:
SELECT * FROM myTable ORDER BY rowInt;
Run Code Online (Sandbox Code Playgroud)
这将按rowInt列出值.如何获得两行之间的Value的差异,结果如下:
rowInt Value Diff
2 23 22 --45-23
3 45 -35 --10-45
9 0 -45 --0-45
17 10 10 -- 10-0
....
Run Code Online (Sandbox Code Playgroud)
该表在SQL 2005(Miscrosoft)中
我使用.Net 3.5和VS 2008一个多月了.像大多数.Net开发人员一样,我已经从.Net 1.0&2.0和VS 2005的多年经验发展而来.就在最近,我发现了LINQ和Lambda表达式的简单性和强大功能,就像我最近的问题一样,例如在列表中查找项目LINQ,使用Lambda或LINQ 将类实例转换或映射到另一个实例的列表,并使用Lambda或LINQ 将类列表转换或映射到另一个类列表.
我承认Lambda和LINQ更简单易读,看起来非常强大.在幕后,.Net编译器必须生成大量代码才能实现这些功能.因此,我对转换到新语法有点犹豫,因为我已经知道了实现相同结果的"旧"方法.
我的问题是关于Lambda和LINQ的效率和性能.也许Lambda表达式大多是内联函数,在这种情况下我猜Lambda应该没问题.LINQ怎么样?
让我们将讨论限制为LINQ-to-Objects LINQ-to-SQL(LINQ-to-SQL).任何评论,比较和经验?
我_vimrc用来配置我的vim 7.2(windows)默认设置.一个设置"设置编号"将在左侧显示行号.我的vim背景颜色为白色(我找不到此设置.也许默认为白色.无论如何我接受此设置).
我希望行号的背景颜色为灰色或灰色.我可以在_vimrc配置此默认设置时使用的命令是什么?
我有以下文字作为一个简单的案例:
...
abc xxx 123 456
wer xxx 345 678676
...
Run Code Online (Sandbox Code Playgroud)
我需要将一块文本xxx移动到另一个位置:
...
abc 123 xxx 456
wer 345 xxx 678676
...
Run Code Online (Sandbox Code Playgroud)
我想我使用可视模式来阻止一列文本,将块移动到另一个位置的其他命令是什么?
我有一个这样的课:
class MyClass<T> {
public string value1 { get; set; }
public T objT { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
以及这个班级的清单.我想使用.net 3.5 lambda或linq来获取不同value1的MyClass列表.我想这可能比在.net 2.0中缓存这样的列表的方式简单得多:
List<MyClass<T>> list;
...
List<MyClass<T>> listDistinct = new List<MyClass<T>>();
foreach (MyClass<T> instance in list)
{
// some code to check if listDistinct does contain obj with intance.Value1
// then listDistinct.Add(instance);
}
Run Code Online (Sandbox Code Playgroud)
lambda或LINQ的做法是什么?
现在我来了一个阶段,将我的所有数据作为缓存(对象)中的列表,我接下来要做的就是从列表中删除一些实例.
通常情况下,我会这样删除:
List<T> list;
List<T2> toBeRemovedItems;
// populate two lists
foreach(T2 item in toBeRemovedItems)
{
list.Remove(delegate(T one) {
// build a condition based on item
// return true or false
});
}
Run Code Online (Sandbox Code Playgroud)
更具体地说,我实际上构建或填充了动态类(不是正式定义的类)的BeRemvoedItems列表.例如,T类类似于MyClass,删除代码是:
class MyClass<C> {
public string Value1 { get; set; }
public int Value2 { get; set; }
public C ObjectC { get; set; }
}
....
List<MyClass<C>> list;
// populate list
// populate toBeRemovedItems. Here is an example of hard-coded codes:
var toBeRemovedLItems = new[] {
new …Run Code Online (Sandbox Code Playgroud) 这两种方法Thread.Suspend()和Thread.Resume()是因为.NET 2.0过时.为什么?什么是其他替代品和任何例子?
默认情况下,我认为我的vimrc设置启用了自动换行.但是,有时候,我希望看到文字行没有被包裹.是否有任何命令我切换启用和禁用文本换行?这样可以避免我退出并更改设置.
我有一个关于TSQL函数更新的问题.例如,我有一个带有字段名称的表.如果我在After Update触发器中检查是否更改了字段名称,请执行以下操作:
if Update(Name)
Begin
-- process
End
Run Code Online (Sandbox Code Playgroud)
即使名称未更改,更新是否仍会返回TRUE?以下更新语句将使用相同的值更新它:
SELECT @v_Name = Name From MyTable Where Id = 1;
Update MyTable Set Name = @v_Name where Id = 1;
Run Code Online (Sandbox Code Playgroud)
如果Update()返回TRUE,即使Name的值没有改变,我是否必须比较插入和删除的虚拟表中的值,以确定该值是否真的改变了?
顺便说一句,插入和删除是虚拟表,如果一个TSQL INSERT或UPDATE语句更改了多行数据,它们可能包含多行数据.如果有多个记录,插入和删除的虚拟表中的行数是否相同,更新(名称)的真正含义是什么?这是否意味着至少有一个被改变了?或者更新(名称)是否表示Name的字段已由Update语句设置,无论该值是否已更改?
我使用的SQL服务器是Microsoft SQL 2005.
是否有任何控制台命令"del"从文件夹中删除文件并将它们放入回收站?del命令将删除文件,而不是在回收站中.