假设我有一个序列.
IEnumerable<int> sequence = GetSequenceFromExpensiveSource();
// sequence now contains: 0,1,2,3,...,999999,1000000
Run Code Online (Sandbox Code Playgroud)
获取序列并不便宜并且是动态生成的,我想只迭代一次.
我想得到0 - 999999(即除了最后一个元素之外的所有东西)
我知道我可以这样做:
sequence.Take(sequence.Count() - 1);
Run Code Online (Sandbox Code Playgroud)
但是这导致了两个大序列的枚举.
是否有LINQ结构可以让我这样做:
sequence.TakeAllButTheLastElement();
Run Code Online (Sandbox Code Playgroud) 对于Web应用程序,当HTTPS不可用作安全措施时,是否仍然可以使登录有点安全?例如:
特别是我正在使用CakePHP和AJAX POST调用来触发身份验证(包括提供的用户名和密码).
问题更新:
继续回到这个并且无法理解......我正在创建一个工作应用程序,它基本上将我们所有的工具编译成一个更易于使用的GUI.我们使用的工具之一是我们从第三方使用的工具,并通过RDWeb作为远程应用程序托管.现在我也经常进行远程桌面访问,我可以使用MSTSC通过我的Winform访问桌面,这个过程非常有效.我很好奇是否可以在MSTSC控件中加载RemoteAPP而不是整个桌面,这样我的用户就无法访问完整的桌面.或者,如果在Winforms中有任何其他方式来托管RemoteAPP.
我已经查看了ITSRemoteProgram上的MSDN文档,但是当我尝试以下操作时,它只会抛出异常.调试器停止rdp.RemoteProgram.RemoteProgramMode = true;并给出HRESULT E_FAIL异常.
我也试过使用remoteprogramOnConnected事件后触发,我得到相同的结果.
try
{
rdp.Server = "FFWIN2008R2DC.fflab123.net";
rdp.Domain = "fflab123";
rdp.UserName = "administrator";
IMsTscNonScriptable secured = (IMsTscNonScriptable)rdp.GetOcx();
secured.ClearTextPassword = "password123";
rdp.OnConnected += rdp_OnConnected;
rdp.RemoteProgram.RemoteProgramMode = true;
rdp.RemoteProgram2.RemoteApplicationName = "Calculator";
rdp.RemoteProgram2.RemoteApplicationProgram = @"C:\Windows\system32\calc.exe";
rdp.Connect();
}
catch (Exception Ex)
{
MessageBox.Show("Error Connecting", "Error connecting to remote desktop " + " Error: " + Ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
Run Code Online (Sandbox Code Playgroud)
也许我会以错误的方式走这条路,或者甚至不可能.我想在正确的方向上轻推我不需要任何人为我写这个.
将TypeNameAssemblyFormat与PCL一起使用是否有问题?使用Newtonsoft.Json时,我没有任何问题,除非我使用此序列化设置.
这是我的Json相关代码:
var settings = new JsonSerializerSettings()
{
TypeNameHandling = TypeNameHandling.Objects,
Formatting = Formatting.Indented,
TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Full
};
var json = JsonConvert.SerializeObject(obj, settings);
var jsonBytes = Encoding.UTF8.GetBytes(json);
return jsonBytes;
Run Code Online (Sandbox Code Playgroud)
当我在声明它的同一个库中进行调用时,它很好.但是,当我从调用上述代码的其他PCL进行调用时,我得到了缺少的方法异常.这只发生在我使用TypeNameAssemblyFormat设置时(即如果我不必使用该设置,那么我就不会写这篇文章了;).
我正在使用PCL简介7.
例外(我不想吹嘘整个堆栈跟踪,但我可以,如果有人认为这会有所帮助):
"System.MissingMethodException: Method not found: 'Void Newtonsoft.Json.JsonSerializerSettings.set_TypeNameAssemblyFormat(System.Runtime.Serialization.Formatters.FormatterAssemblyStyle)'
Run Code Online (Sandbox Code Playgroud) serialization json missingmethodexception json.net portable-class-library
我的aspx页面中有一个下拉列表.下拉列表的数据源是一个数据表.后端是MySQL,记录通过使用存储过程到达数据表.
我想按下降顺序在下拉菜单中显示记录.
我可以通过两种方式实现这一目标.
1)dt是数据表,我使用dataview来过滤记录.
dt = objTest_BLL.Get_Names();
dataView = dt.DefaultView;
dataView.Sort = "name ASC";
dt = dataView.ToTable();
ddown.DataSource = dt;
ddown.DataTextField = dt.Columns[1].ToString();
ddown.DataValueField = dt.Columns[0].ToString();
ddown.DataBind();
Run Code Online (Sandbox Code Playgroud)
2)或者在选择查询中我可以简单地说
SELECT
`id`,
`name`
FROM `test`.`type_names`
ORDER BY `name` ASC ;
Run Code Online (Sandbox Code Playgroud)
如果我使用第二种方法,我可以简单地删除数据视图部分.假设此type_names表有50条记录.我的页面每分钟都有100,000名用户查看.考虑效率,内存处理的最佳方法是什么?获取未分类的记录到datatable并过滤后面的代码或在数据库中对它们进行排序?
我可以在模板中像这样一一获取所有标签的名称
{% for tag in blog.tags.all %}
<span class="label label-default">{{ tag.name }}</span>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
我可以从这样的表单中获取输入{{ form.tags }},它给了我:
<input id="id_tags" name="tags" type="text" value="xxx,y y y,zzz">
Run Code Online (Sandbox Code Playgroud)
但是我想像这样在我的模板中自定义我的输入
<input id="id_tags" class="form-control" maxlength="50" name="title" type="text" placeholder="tags" value="{{ form.tags }}">
Run Code Online (Sandbox Code Playgroud)
如何设置输入的值=“ {{ form.tags }}”?
什么有效 -
假设我有一个scriptblock与Select-Objectcmdlet 一起使用的。
$jobTypeSelector = `
{
if ($_.Type -eq "Foo")
{
"Bar"
}
elseif ($_.Data -match "-Action ([a-zA-Z]+)")
{
$_.Type + " [" + $Matches[1] + "]"
}
else
{
$_.Type
}
}
$projectedData = $AllJobs | Select-Object -Property State, @{Name="Type"; Expression=$jobTypeSelector}
Run Code Online (Sandbox Code Playgroud)
这工作正常,并且我得到了预期的结果。
我正在尝试做的事情 -
但是,在稍后的代码中,我想重用scriptblock定义为$jobTypeSelector.
例如,我期望下面的代码采用$fooJob(注意它是单个对象)作为下面的参数传递,并用于$_中的自动变量scriptblock并返回相同的结果,因为它在Select-Objectcmdlet 上下文中执行时返回。
$fooType = $jobTypeSelector.Invoke($fooJob)
Run Code Online (Sandbox Code Playgroud)
什么不起作用-
它没有按我的预期工作,我得到了空值。
我已经尝试过的 -
我检查了一下,属性都设置正确,并不是因为相关属性本身为空或$null.
我在互联网上查找,似乎很难找到有关该主题的任何相关页面,但我最终找到了一个在稍微不同的上下文中接近解释问题的页面 - …
我正在研究如何正确创建弱引用事件处理程序.由于WPF已经有一个避免事件内存泄漏的解决方案,我反编译了"WeakEventManager"类并花了一些时间来分析它.
正如我所发现的,"WeakEventManager"类依赖于创建和存储对目标对象以及事件处理程序委托的弱引用.以下是一些代码段:
this._list.Add(new WeakEventManager.Listener(target, handler));
public Listener(object target, Delegate handler)
{
this._target = new WeakReference(target);
this._handler = new WeakReference((object) handler);
}
Run Code Online (Sandbox Code Playgroud)
我问自己,这个简单的解决方案是否已经有效,或者我忽略了一个重要方面,因为我在互联网上找到的大多数其他解决方案都很复杂且难以理解.到目前为止,我能找到的最佳解决方案是使用未绑定的委托.这是某种包装器委托,它将事件处理程序和事件订阅者实例作为参数(是的,它要求在委托调用期间传递事件订阅者对象).
你可以在这里找到这篇精彩的文章:
http://diditwith.net/CommentView,guid,aacdb8ae-7baa-4423-a953-c18c1c7940ab.aspx#commentstart
"WeakEventManager"类不依赖于知道订阅者类或任何其他信息.除此之外,它还可以与匿名代表合作.为什么开发人员花了这么多时间编写一个不仅工作而且使用方便的解决方案,如果解决方案只要求他们存储对委托的弱引用?有什么收获?
更新:因为有人贬低了这个问题(可能有点不明确),我想提出一个更精确的问题:
这个源代码首先是创建一个有效的弱事件处理程序吗?如果没有,缺少什么?
有没有办法在 C# 上将 DataGridView 及其列修复为全屏?
我试图写一行文本75次,并将数字增加1,直到它达到75的条件.从2开始是有原因的.这是代码
class WriteTextFile
{
static void Main()
{
string path = "C:\\Users\\Writefile\\test.txt";
string line;
int i = 2;
while (i <= 75 )
{
line = "Error_Flag = 'FOR_IMPORT' and location_type = 'Home' and batch_num = " + i + "\n";
System.IO.File.WriteAllText(@path, line);
i++;
}
}
}
Run Code Online (Sandbox Code Playgroud)
有了这个,它最后只写了一行75.我希望它用相同的东西写出所有74行,每次只有这个数字上升.谢谢.
我们已经完成了从目录中读取信息的任务.我正在努力寻找具有最大价值的文件.我试过这个;
using System.IO;
static void Main(string[] args)
{
DirectoryInfo folderInfo = new DirectoryInfo("path");
FileInfo[] files = folderInfo.GetFiles();
int largestSize;
for (largestSize = 0; largestSize < files.Length; largestSize++)
{
Console.WriteLine(files[largestSize].Length);
}
Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用.当我说它不起作用时,我的意思是它显示列表中目录中所有文件的文件大小.我完全感到困惑,因为这正是我的导师所建议的."为从0开始的最大文件创建一个变量,并循环遍历文件以找到最大的大小".
我怀疑我可以使用或理解Foreach循环,因为到目前为止我只学习了For,do-while,while,以及if和if else语句.
我想在Racket中使用set-subtract运算符.我遇到了一些我不理解的事情.如果我有以下代码:
(set-member? (set "NDT_NT\\stuff") "NDC_NT\\stuff")
Run Code Online (Sandbox Code Playgroud)
我不应该得到这个答案吗?
#t
Run Code Online (Sandbox Code Playgroud)
我正进入(状态:
#f
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
哪个在c#中也更快
int a = 10;
bool _IsEven;
if(a%2 == 0)
{
_IsEven = true;
}
else
{
_IsEven = false;
}
Run Code Online (Sandbox Code Playgroud)
要么
int a = 10;
bool _IsEven = a%2 == 0 ? true : false;
Run Code Online (Sandbox Code Playgroud)
UPDATE
我知道在这里我可以优化我的代码
bool _IsEven = a%2 == 0;
Run Code Online (Sandbox Code Playgroud)
但我的问题不是关于代码优化,而是关于这两个语句的性能?
你能帮助我提高我的编码知识吗?
c# ×8
.net ×1
ajax ×1
asp.net ×1
cryptography ×1
datatable ×1
django ×1
encryption ×1
for-loop ×1
fullscreen ×1
grid ×1
if-statement ×1
json ×1
json.net ×1
linq ×1
mysql ×1
performance ×1
php ×1
powershell ×1
racket ×1
rdp ×1
remoteapp ×1
scheme ×1
scriptblock ×1
security ×1
sorting ×1
text ×1
winforms ×1
wpf ×1