Tag: C#的

在IGrouping中获取“Value”属性

我有一个像数据结构 public DespatchGroup(DateTime despatchDate, List<Products> products); 而我正在尝试做… var list = new List<DespatchGroup>(); foreach (var group in dc.GetDespatchedProducts().GroupBy(i => i.DespatchDate)) { // group.Values is not correct… how do I write this? list.Add(new DespatchGroup(group.Key, group.Values); } 我显然不理解IGrouping因为我无法看到如何实际获得组内的数据logging!

适当的方式使用.ContinueWith任务

所以我最近被告知,我是如何使用我的.ContinueWith for Tasks不是正确的方式来使用它们。 我还没有在互联网上find这个证据,所以我会问你们,看看答案是什么。 这里是我如何使用.ContinueWith的一个例子: public Task DoSomething() { return Task.Factory.StartNew(() => { Console.WriteLine("Step 1"); }) .ContinueWith((prevTask) => { Console.WriteLine("Step 2"); }) .ContinueWith((prevTask) => { Console.WriteLine("Step 3"); }); } 现在我知道这是一个简单的例子,它运行速度非常快,但是假设每个任务执行一些更长的操作。 所以,我被告知的是在.ContinueWith中,你需要说prevTask.Wait(); 否则你可以在前一个任务完成之前完成工作。 这甚至可能吗? 我认为我的第二个和第三个任务只会在以前的任务完成时运行。 我被告知如何编写代码: public Task DoSomething() { return Task.Factory.StartNew(() => { Console.WriteLine("Step 1"); }) .ContinueWith((prevTask) => { prevTask.Wait(); Console.WriteLine("Step 2"); }) .ContinueWith((prevTask) => […]

Malwarebytes为基本的C#“Hello World!”程序提供了木马警告

基本上,我只是用Malwarebytes扫描我的电脑(在运行之前更新了定义),它说我用C#编写的“helloworld”程序有一个木马 。 我知道这是一个误报,因为我在2-3天前只写了一个程序,然后跟着一个小教程网站来制作我信任的程序。 我是C#的新手,但是我什么也看不到有任何木马的警告。 该程序标记可执行文件,但不是源文件。 using System; namespace HelloWorldApplication { class HelloWorld { static void Main(string[] args) { Console.WriteLine("\n\tHello World!"); Console.WriteLine("This is my first C# program.\nI'm so proud of myself!"); Console.WriteLine("\tTeehee!"); } } } 这是用Notepad ++编写的代码,它是从命令行(实际上是Cygwin )运行的。 为什么会标记这个? 那么,作为一个新兴的C#程序员,我应该知道些什么呢?

什么是“记忆跺脚”?

我刚刚遇到这个提到“跺脚”的博客文章 : 一个很容易跺脚内存的C ++程序(如果你出生在一个托pipe代码世界,你可能从来没有听说过)。 其实我从来没有听说过! 那么,这是什么,一个记忆跺脚,跺脚的记忆? 什么时候发生?

嵌套循环的更快替代?

我需要创build一个数字组合的列表。 数字非常小,所以我可以使用byte而不是int 。 然而,它需要许多嵌套循环,以获得每一个可能的组合。 我想知道是否有更高效的方式去做我以后的事情。 到目前为止的代码是: var data = new List<byte[]>(); for (byte a = 0; a < 2; a++) for (byte b = 0; b < 3; b++) for (byte c = 0; c < 4; c++) for (byte d = 0; d < 3; d++) for (byte e = 0; e < 4; […]

C#中Select和ConvertAll的区别

我有一些列表: List<int> list = new List<int> { 1, 2, 3, 4, 5 }; 我想对我的列表中的元素应用一些转换。 我可以用两种方法做到这一点: List<int> list1 = list.Select(x => 2 * x).ToList(); List<int> list2 = list.ConvertAll(x => 2 * x).ToList(); 这两种方式有什么区别?

memset()的返回值有什么用?

memset()被声明为返回void* ,该值始终与传入该函数的地址的值相同。 什么是返回值的用法? 为什么它不返回void ?

C#相当于Java的charAt()?

我知道我们可以使用Java中的charAt()方法通过指定它的位置来获取string中的单个字符。 在C#中有一个等价的方法吗?

如何在C#中生成UUID

我正在编程创build一个.idl文件。 如何以编程方式为接口和方法创buildUUID。 我可以编程生成UUID吗?

我应该如何检测大型C ++项目中不必要的#include文件?

我正在Visual Studio 2008中处理一个大的C ++项目,并且有很多文件包含不必要的#include指令。 有时#include只是工件,所有东西都可以正确的编译,而在其他情况下,类可以被声明,#include可以被移动到.cpp文件中。 有没有什么好的工具来检测这两种情况?