我对速度感兴趣,而不是好看的代码,这就是为什么我使用数组而不是列表(整数).
我有一个数组看起来像:0,1,0,1,1,0,1,0,1,1,1,0,0,1
我对每个数字的位置感兴趣,所以我可以随后随机选择一个.
所以我所做的是循环遍历数组以获取每个1的位置编号,然后创建一个如下所示的新数组:2,4,5,7,9,10,11,14
在这里可以使用bitwise吗?我不知道
代码看起来像:
Private Function theThing() As Integer()
Dim x As Integer
'arIn() would be a parameter
Dim arIn() As Integer = {0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1}
Dim ar() As Integer = Nothing
Dim arCount As Integer = -1
For x = 1 To arIn.GetUpperBound(0)
If arIn(x) = 1 Then
arCount += 1
End If
Next
If arCount > -1 Then
'using redim preseve is slower than the …Run Code Online (Sandbox Code Playgroud) 在数据库中,您有一个带有位字段的表,让该字段调用Active
在应用程序中,您有一个变量boolean,我们称之为NotActive
每次从表中获取字段时,在应用程序中都可以切换变量的含义.
NotActive = !mytable.active;
Run Code Online (Sandbox Code Playgroud)
另一个例子是名为Enable__yes__no的数据库中的位字段以及您执行的代码
control.enabled = !mytable.Enable_yes_no
Run Code Online (Sandbox Code Playgroud)
最佳做法是保持相同的名称和相同的含义,但上面的模式,你怎么称呼?
我的目标是,如果我有这个:
colmuns c1 | c2 | c3 | c4 | c5 | n..
row1 a | a | a | a | a |
row2 b | b | b | b | b |
rowN...
Run Code Online (Sandbox Code Playgroud)
我想做一个会返回的查询
myCol
aaaaa
bbbbb
nnnnn...
Run Code Online (Sandbox Code Playgroud)
我知道我能做到这一点
select t2.id, (
select *
from mytable t1
where t1.id= t2.id
for xml path('')) as row
from mytable t2
Run Code Online (Sandbox Code Playgroud)
并且它会将包含许多列的整行放入我想要的一列中
现在,如何过滤掉xml标签?
或者还有其他解决方案吗?
编辑 列可能为null不是varchar,可以是int,varchar,date等
我有这个字符串
aa b qqidjwljd p fjem
我需要更换b由p和p由b
a a p qqidjwljd b fjem
我这样做的方式看起来像这样
myvar.replace("b","1").replace("p","b").replace("1","p")
Run Code Online (Sandbox Code Playgroud)
这有点难看
有没有更好的办法?
编辑
为什么难看?因为我必须决定/找到适用于任何可能情况的任意字符集
我想知道如果我将常见的where子句查询提取到一个公共表达式中它会使我的查询更快,如果我在一个集合上说10个linq查询的东西与where子句的完全相同的第一部分.
我做了一个小例子来解释一下.
public class Person
{
public string First { get; set; }
public string Last { get; set; }
public int Age { get; set; }
public String Born { get; set; }
public string Living { get; set; }
}
public sealed class PersonDetails : List<Person>
{
}
PersonDetails d = new PersonDetails();
d.Add(new Person() {Age = 29, Born = "Timbuk Tu", First = "Joe", Last = "Bloggs", Living = "London"});
d.Add(new Person() { Age = 29, Born …Run Code Online (Sandbox Code Playgroud) ....
case "DOWNLOAD":
if (File.Exists(commandContent)) {
MessageBox.Show(commandContent);
result = System.Convert.ToBase64String(File.ReadAllBytes(commandContent)); //ERROR
result = HttpUtility.UrlEncode(result);
}
break;
Run Code Online (Sandbox Code Playgroud)
并且未处理的错误异常在路径中显示"非法字符".MessageBox显示正确的路径
C:\Users\Me\Myfile.exe
Run Code Online (Sandbox Code Playgroud)
我试着做以下事情:
commandContent = commandContent.replace(@"\",@"\\");
result = System.Convert.ToBase64String(File.ReadAllBytes(commandContent)); //ERROR
Run Code Online (Sandbox Code Playgroud)
我也尝试过以下方法:
commandContent = @""+commandContent+"";
result = System.Convert.ToBase64String(File.ReadAllBytes(commandContent)); //ERROR
Run Code Online (Sandbox Code Playgroud)
但这不起作用.而且更奇怪的是它正常工作,但是一旦我将commandContent插入db(使用ajax而不是常规表单提交)的方式进行了一些修改,这个问题出现了?
编辑:
我尝试使用硬编码路径
commandContent = @"C:\Users\Me\file.exe";
Run Code Online (Sandbox Code Playgroud)
这工作正常.如何强制变量不包含任何非法字符?
我期待结果是0
using System;
public class Program
{
public static void Main()
{
int value = 5;
value += (value += 5) > 5 ? -value : +value;
Console.WriteLine(value);
}
}
Run Code Online (Sandbox Code Playgroud)
因为检测到的值高于5,这意味着在这种情况下它的值为10,我期待10 + = -10
发生的事情是5 + = -10
什么定义了这种行为?
我想我太习惯使用LINQ,但这很慢,我确实使用了一个分析器,它耗费了65%的时间用于我正在尝试做的事情
var unlock = Locked.OrderBy(x => x.Weight) //double
.ThenByDescending(x => x.Stuff?.Level ?? 100) //int
.ThenBy(x => x.Penalty) //double
.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
Locked是一个列表,我知道排序会改变列表,但我并不在乎,我只是想让它工作(如果可能的话),下面的代码不会给出与上面的LINQ相同的结果;
Locked.Sort(delegate (Node a, Node b)
{
int xdiff = a.Weight.CompareTo(b.Weight);
if (xdiff != 0) return xdiff;
var aStuff = a.Stuff?.Level ?? 100;
var bStuff = b.Stuff?.Level ?? 100;
xdiff = -1 * aStuff.CompareTo(bStuff);
if (xdiff != 0) return xdiff;
return xdiff = a.Penalty.CompareTo(b.Penalty);
});
var unlock = Locked[0];
Run Code Online (Sandbox Code Playgroud)
首先,是否可以使用List.Sort进行复杂的排序?asc /然后desc /然后asc?
如果是的话,我的错误在哪里?
接下来是,有没有更快的方式做我正在尝试做的事情?
我继承了一个asp.net网站来维护
在查看aspx页面时,几乎每个runat = server的元素都没有定义id属性.
我应该检查每个元素并添加一个吗?
假设我有这个网址:
http://myweb/item/info/1
Run Code Online (Sandbox Code Playgroud)
带有链接
http://myweb/item/edit/1
Run Code Online (Sandbox Code Playgroud)
我不希望用户手动更改为
http://myweb/item/edit/2
Run Code Online (Sandbox Code Playgroud)
我希望用户点击信息页面上的链接,以便他可以访问编辑页面.
你会如何管理?
我尝试了很多东西,但我总是得到"无法将字符串转换为membershipuser"
来自文件ListUsers.aspx的这一行
var users = (ViewData["Users"] as List<MembershipUser>);
Run Code Online (Sandbox Code Playgroud)
ViewData ["用户"]来自
public virtual ViewResult Index( int? pageIndex, int? pageSize )
{
ViewData["Title"] = "Membership Administration";
int totalRecords;
var members = Membership.GetAllUsers( pageIndex ?? 0, pageSize ?? 25, out totalRecords );
ViewData["Users"] = ToList<MembershipUser>( members );
ViewData["Roles"] = dotNetRoles.GetAllRoles().ToList();
return View( "ListUsers" );
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
要求是,两个字段必须相等,你会做什么
declare @var datetime
set @var = getdate()
update table set f1=@var,f2=@var
Run Code Online (Sandbox Code Playgroud)
或者干脆
update table set f1=getdate(),f2=getdate()
Run Code Online (Sandbox Code Playgroud)