我无法获得LINQ复合选择编译.这是代码:
int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
int[] numbersB = { 1, 3, 5, 7, 8 };
var pairs =
from a in numbersA,
b in numbersB
where a < b
select new {a, b};
Run Code Online (Sandbox Code Playgroud)
代码来自此处的教程,标题为"SelectMany - Compound from 1":
http://msdn.microsoft.com/en-us/vcsharp/aa336758.aspx#SelectSimple1
我得到的编译时错误如下:
查询主体必须以select子句或group子句结束
紧跟在'numbersA'之后的逗号是发生错误的地方.现在我无法弄清楚我做错了什么,因为这只是MS网站上的代码.任何帮助都会非常感谢.
所以,我现在越来越多地被测试驱动的开发所吞噬,而且我在考虑tdd时编写的代码越多,看起来就越多,我必须考虑我应该编写的测试范围.我想就我应该为自己的项目编写多少单元测试设置一个个人策略,并且想知道我是否会得到一些关于你如何接近你的方法的建议.
这是我目前面临的一个决定的例子......
我有三节课......
public class User
{
public string Username { get; set; }
public List<Favorite> Favorties { get; set; }
}
public class Favorite
{
public string Username { get; set; }
public int rank { get; set; }
}
public class UserManager
{
public List<Favorite> GetTop5(User user)
{
var qry = from fav in user.Favorties.OrderBy(f => f.rank)
select fav;
return qry.Take<Favorite>(5).ToList();
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个User类的数据访问层,我已经有了一个"GetUser"测试设置.正如您所看到的,在我的业务逻辑中,我有一个方法UserManager.GetTop5(),它返回我刚从数据库中取出的用户的前5个收藏夹.此方法非常简单,目前不涉及任何外部资源或依赖项.
所以我的问题是你会继续为这个"GetTop5"功能点编写另一个测试,即使失败的可能性很小吗?
如果您将来扩展功能,您是否设置了测试?或者你认为这里的测试是否过度?
我现在正在做的事情之一与游戏有一些相似之处.出于说明的目的,我将使用从虚构的假设游戏中抽取的示例来解释我的问题.
我们称之为DeathBlaster 4:The Deathening.在DB4中,您有许多Ship对象Phenomena在旅行时会定期和随机地遇到.一个给定的Phenomenon可能Effects在Ship遇到它时有零个,一个或多个.例如,我们可能有四种Ships和三种Phenomena.
Phenomena
==========================================
Ships GravityWell BlackHole NebulaField
------------ ------------------------------------------
RedShip +20% speed -50% power -50% shield
BlueShip no effect invulnerable death Effects of Various
GreenShip -20% speed death +50% shield Phenomena on Ships
YellowShip death +50% power no effect
另外,Effects可以彼此交互.例如,GreenShip这是在两者GravityWell和一个NebulaField可导出某种所生成之间的协同作用的SpeedEffect和ShieldEffect.在这种情况下,协同效应本身就是Effect- 例如,可能存在PowerLevelSynergyEffect这种相互作用的结果.除了Effects在a 上采取行动之外,不需要任何其他信息Ship …
我一直在挖掘mplayer/mencoder和ffmpeg文档,我似乎无法想出任何东西.我对输出格式并不是特别挑剔,因为我可以使用正则表达式将其拉出来,我似乎无法在第一时间获取数据.
我有非常大的图像(jpg),我想写一个csharp程序来循环文件,并将每个图像的大小减少75%.
我试过这个:
Image thumbNail = image.GetThumbnailImage(800, 600, null, new IntPtr());
Run Code Online (Sandbox Code Playgroud)
但文件大小仍然很大.
反正有没有创建缩略图并且文件大小更小?
我刚刚进入Markdown并认为这是蜜蜂的膝盖.我正在使用ASP.NET(MVC),我想知道Markdown是否有任何好的.NET库,并且我也很好奇SO是如何动态呈现它的.它必须是JavaScript库.
如何在SQL Server列中找到最小的未使用数字?
我将要将大量手动记录的记录从Excel导入SQL Server表.它们都有一个数字ID(称为文档编号),但由于不再适用的原因,它们没有按顺序分配,这意味着从现在开始我的网站记录新记录时,需要为其分配最小的文档编号(尚未采取的大于零).
有没有办法通过纯SQL执行此操作,或者这是TSQL /代码的问题?
谢谢!
编辑
特别感谢WW提出并发问题.鉴于这是一个Web应用程序,它根据定义是多线程的,任何面临同样问题的人都应该考虑代码或数据库级别锁定来防止冲突.
LINQ
仅供参考 - 这可以通过LINQ使用以下代码完成:
var nums = new [] { 1,2,3,4,6,7,9,10};
int nextNewNum = (
from n in nums
where !nums.Select(nu => nu).Contains(n + 1)
orderby n
select n + 1
).First();
Run Code Online (Sandbox Code Playgroud)
nextNewNum == 5
我喜欢doctest但是当你有一个复杂的参数需要在传递给函数之前设置它变得非常难以阅读..因此,你开始使用多行分配然后调用你想要测试的函数.这种方法然而,会报告你有多个测试而不是你拥有的实际测试数量.一个例子将说明我的意思..
def returnme(x):
"""
Returns what you pass
>>> y = (2, 3, 5, 7)
>>> returnme(y)
(2, 3, 5, 7)
"""
return x
Run Code Online (Sandbox Code Playgroud)
在上面的代码片段中,只有一个测试而另一个只是一个变量赋值,但是,这是报告的内容.
Trying:
y = (2, 3, 5, 7)
Expecting nothing
ok
Trying:
returnme(y)
Expecting:
(2, 3, 5, 7)
ok
2 tests in 2 items.
2 passed and 0 failed.
我看过记录的旗帜,肯定是我遗漏了什么......
我有一个long double常量,我设置为const或not-const.它比long double我的测试工作站(19位)的精度更长(40 位).
当我打印出来时,它不再以19位精度显示,而是以16位显示.
这是我正在测试的代码:
#include <iostream>
#include <iomanip>
#include <limits>
#include <cstdio>
int main ()
{
const long double constLog2 = 0.6931471805599453094172321214581765680755;
long double log2 = 0.6931471805599453094172321214581765680755;
std::cout << std::numeric_limits<long double>::digits10 + 1 << std::endl;
std::cout << "const via cout: " << std::setprecision(19) << constLog2 << std::endl;
std::cout << "non-const via cout: " << std::setprecision(19) << log2 << std::endl;
std::fprintf(stdout, "const via printf: %.19Lf\n", constLog2);
std::fprintf(stdout, "non-const via printf: %.19Lf\n", log2);
return 0;
} …Run Code Online (Sandbox Code Playgroud) c# ×4
unit-testing ×2
.net ×1
asp.net ×1
c++ ×1
command-line ×1
doctest ×1
eclipse ×1
ffmpeg ×1
file ×1
image ×1
java ×1
javascript ×1
linq ×1
linux ×1
long-double ×1
markdown ×1
math ×1
precision ×1
python ×1
resolution ×1
size ×1
sql ×1
sql-server ×1
ssl ×1
tdd ×1
test-first ×1
video ×1