在检查LINQ的能力时,我编写了简单的QuickSort实现,
很高兴最终快速排序功能适合一行.
但是我注意到这个"一行"功能的性能与我原来的"直接"版本有很大不同.
这是在循环中调用快速排序函数10次的代码:
var r = new Random(DateTime.Now.Millisecond);
Stopwatch watch = new Stopwatch();
for (int i = 0; i < 10; i++)
{
watch.Reset();
var randomA = new int[100].Select(x => r.Next(100)).ToList();
watch.Start();
var sorted = QuickSort<int>(randomA);
watch.Stop();
Console.WriteLine("Duration: {0} ms", watch.ElapsedMilliseconds);
}
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)
两个QuickSort函数的实现与输出结果:
简单版本:
IEnumerable<T> QuickSort<T>(IEnumerable<T> a) where T : IComparable<T>
{
if (a.Count() <= 1) return a;
var pivot = a.First();
IEnumerable<T> lesser = a.Skip(1).Where(x => x.CompareTo(pivot) < 0);
IEnumerable<T> bigger = a.Skip(1).Where(x => x.CompareTo(pivot) >= 0); …Run Code Online (Sandbox Code Playgroud) 我有一个图像(1000x1300像素),并希望用10x10像素单元格的网格覆盖它(所以这将是100x130像素).然后必须有一种方法来单击鼠标左键,在网格上移动"标记"底层网格单元格(即更改背景颜色).当时我在jQuery中有以下源代码
$(window).ready(function() {
$("body").mousedown(function() { mstate = 1; }).mouseup(function() {
mstate = 0;
});
var container = document.getElementById("grid");
var divs = "";
for (var y in grid) {
divs += "<tr>";
for (var x in grid[y]) {
var class = "cellinactive";
if (grid[y][x]==1) class = "cellactive";
else if (grid[y][x]==2) class = "cellreserved";
else if (grid[y][x]==3) class = "cellsold";
divs += "<td class='" + class + "'> </td>";
}
divs += "</tr>";
}
divs = "<table>" + divs + "</table>";
container.innerHTML = …Run Code Online (Sandbox Code Playgroud) 我正在运行DbDataReader查询以从下拉列表中删除项目,如果它们已经附加到特定提交,并且我一直收到错误,告诉我读者已关闭.无法理解为什么我的读者被视为关闭在这里.我错过了什么?
protected void Page_Load(object sender, EventArgs e)
{
string x = Request.QueryString["SubId"];
string connectionString = System.Configuration.ConfigurationManager.
ConnectionStrings["MyConnectionString"].ConnectionString;
string displayQuery = "SELECT CustName, CustAdd, CustCity, CustState, " +
"CustZip FROM Customer WHERE SubId =" + x;
string broQuery = "SELECT EntityType FROM Broker WHERE SubId =" + x;
string ddlQuery = "SELECT ProductId FROM SubmissionProducts " +
"WHERE SubmissionId =" + x;
using (SqlConnection displayConn = new SqlConnection(connectionString))
{
displayConn.Open();
SqlCommand DlistCmd = new SqlCommand(ddlQuery, displayConn);
using (SqlDataReader Ddldr …Run Code Online (Sandbox Code Playgroud) 我有一个名称是品牌的价值,像这样:
$brands = "1,2,3,4,5,";
Run Code Online (Sandbox Code Playgroud)
我可以将此值转换为:
$brands = "1,2,3,4,5";
Run Code Online (Sandbox Code Playgroud)
我想要从表中选择*的写源,其中id =每个品牌
例如 :
select * from brands where (id='1' or id='2' or id='3' or id='4' or id='5');
Run Code Online (Sandbox Code Playgroud)
1,2,3,4,5是可变的并且可以改变例如可以改为1,2,9,4,5,8
我怎么写这个?请帮助谢谢
我知道这是一个愚蠢的问题,但我无法找到如何从我的下拉列表中获取所选值的方法:(
初始化下拉列表:
SqlCommand command = new SqlCommand("SelectAllUserID", connection);
command.CommandType = CommandType.StoredProcedure;
SqlDataReader sqlReader = command.ExecuteReader();
if (sqlReader.HasRows)
{
TProjectMID.DataSource = sqlReader;
TProjectMID.DataTextField = "UserID";
TProjectMID.DataValueField = "UserID";
TProjectMID.DataBind();
}
Run Code Online (Sandbox Code Playgroud)
尝试获取下拉列表的值:
String a;
a = TProjectMID.SelectedValue;
a = TProjectMID.SelectedItem.Value;
a = TProjectMID.DataValueField;
a = TProjectMID.Text;
Run Code Online (Sandbox Code Playgroud)
它没有返回我选择的值,而是在出现下拉列表时始终返回默认值?
谁能告诉我我做错了什么?谢谢
我试图用C++代码分析车牌.重点不是如何快速实现目标,因为我想自己去创建这个C++代码并学习如何实现.
问题:
位图文件中的字节不加起来!位图文件:
http://ictmdeklerk.nl/cor.bmp
为什么他们不加起来:
我正在使用24位位图图像(*.BMP文件).我知道位图是用BMPFILEHEADER和BMPINFOHEADER构建的,它占用了54个字节.
现在,图像宽1350像素,高740像素,产生999000像素.
因为文件是24位,所以每个像素有3个字节.图像需要999000*3 = 2997000字节.但是BMPINFOHEADER中的图像大小(biSizeImage)表示图像是2998480字节!文件大小为2.998.534字节 - 确实54个头字节= 2.998.480.所以标题仍然是54个字节.那里没有额外的元数据.当我每像素除2.998.480/3字节时,得到999493,33像素!它甚至不是一个圆形的数字!
这让我疯了.Windows如何知道如何在不移动像素或颜色或任何东西的情况下显示此图像?
谁能解释一下这些额外的像素/字节来自哪里?以及如何处理它们?
提前致谢!
我必须编写一个LINQ语句,该语句查找项目在过去90天内出现在数据库中的次数.这很简单,但他们希望在1-30天,31-60天和61-90天内查看数据.
我目前正在做的是创建一个包含四组数据的模型,获取所有唯一SKU的列表,然后查找它们在数据库中出现的次数.
我的问题是日期范围.我正在创建新的DateTime对象并向他们添加NEGATIVE天,我正在尝试使用它来比较范围.我无法弄清楚怎么说这样的话:
编辑日期介于(-30天)和(-60天)之间.
我不能使用SP.必须有一个更简单的方法.也许使用时间跨度,看看它是否落在那个跨度?我不确定.我很少与约会合作.
我正在建造一个小型视频游戏.我正在尝试做好oop/design.
我有一个地图对象和一个相机对象.这些都是在'world'对象中创建的.
但是有一个问题.在地图中,我渲染并更新所有内容.出于性能原因,我只想更新/渲染播放器屏幕上的内容.
相机对象具有此信息 - 但地图对象无法访问它.
我可以通过几种方式获取此信息,但希望获得有关如何执行此操作的选项.
我有一个图像库,其中图像和图像下的上一个/下一个链接使用AJAX重新填充.当用户拥有JS(以便使用AJAX方法)时,我想阻止在这里工作的链接,但只有在第一次加载页面时这才有效.
这是我在页面上停止链接工作的代码 -
/** Prevent the default links from working when clicking on an ajax link */
$('#attachment-body a').click(function(e){
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
以下是其中一个链接的示例 -
<a href="<?php echo get_permalink($attachment->ID); ?>" title="<?php echo $attachment->post_name; ?>" rel="attachment" onclick="set_centre_image(<?php echo $attachment->ID; ?>, <?php echo $value_for_writing; ?>)">
<img src="<?php echo $img_src[0]; ?>" />
</a>
Run Code Online (Sandbox Code Playgroud)
我猜这与那些应该禁用其默认值的元素有关,因为AJAX会重新加载,但如果是这样的话,有没有办法绕过它.如果不是这样,有人知道我做错了什么吗?
谢谢.
我试图在C#中使用随机函数从一个addetailsID有六个以上元素的数组中随机选择四个.
我将这些随机选择放入另一个数组中strAdDetailsID:
string[] strAdDetailsID = new string[4];
for (int i = 0; i < 4; i++)
{
Random random = new Random();
int index = random.Next(0, addetailsID.Length);
value = addetailsID[index].ToString();
strAdDetailsID[i] = value;
}
Run Code Online (Sandbox Code Playgroud)
有时候,我从六个元素中得到两个相同的值.如何获取所有四个唯一值?