Tag: C#的

如何从IGrouping获取值

我有一个关于IGrouping和Select()方法的问题。 可以说我有这样的IEnumerable<IGrouping<int, smth>> : var groups = list.GroupBy(x => x.ID); 其中list是一个List<smth> 。 现在我需要以某种方式将每个IGrouping值传递给另一个列表。 foreach (var v in structure) { v.ListOfSmth = groups.Select(…); // <- ??? } 任何人都可以build议如何从IGrouping<int, smth>在这样的上下文中获取值( List<smth> )?

main()真的是C ++程序的开始吗?

来自C ++标准的$ 3.6.1 / 1节读取, 程序应该包含一个名为main的全局函数,它是程序的指定开始 。 现在考虑这个代码, int square(int i) { return i*i; } int user_main() { for ( int i = 0 ; i < 10 ; ++i ) std::cout << square(i) << endl; return 0; } int main_ret= user_main(); int main() { return main_ret; } 这个示例代码做我打算做的,即打印从0到9的整数的平方, 然后进入main()函数,该函数应该是程序的“开始”。 看看这里的输出: http : //www.ideone.com/Niy0R 我还用-pedantic选项GCC […]

Linq列表到单个列表

似乎是这样的事情已经被回答,但我无法find它。 我的问题是非常简单的,我怎么能在一个语句中这样做,而不是必须新的空列表,然后聚集在下一行,我可以有一个单一的linq语句输出我的最终名单。 细节是一个项目列表,每个项目都包含一个住宅列表,我只是希望所有的住宅都在一个平面列表中。 var residences = new List<DAL.AppForm_Residences>(); details.Select(d => d.AppForm_Residences).ToList().ForEach(d => residences.AddRange(d));

Web API 2和.NET 4.5.1迁移后GlobalConfiguration.Configure()不存在

我最近开始遵循这个指南将我的项目迁移到.NET 4.5.1和Web Api 2。 MS开发人员Rick Anderson要求你做的第一件事就是改变: WebApiConfig.Register(GlobalConfiguration.Configuration); 至 GlobalConfiguration.Configure(WebApiConfig.Register); 在global.asax文件中。 然而,当我尝试构build时,这给了我一个错误: 错误1“System.Web.Http.GlobalConfiguration”不包含“configuration”的定义 我的项目目前在MVC 5和Web Api 2和.NET 4.5.1,但我认为System.Web.Http仍然认为它是.NEt 4.0版本。 我怎样才能解决这个问题? 谢谢。 编辑: 这是我的程序集绑定: <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31BF3856AD364E35" culture="neutral"/> <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/> </dependentAssembly> <!– <dependentAssembly> <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/> <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/> <bindingRedirect […]

C#:打印对象的所有属性

有没有一种方法可以将.NET的所有属性和对象写入控制台? 当然可以使用reflection,但我很好奇,如果这已经存在…特别是因为你可以在Visual Studio中立即窗口中。 在那里你可以有一个对象的名字(在debugging模式下),按下回车键,它会打印出所有的东西。 像这样的方法存在吗?

使用Moq来确定一个方法是否被调用

这是我的理解,我可以testing,如果我调用更高级别的方法,将发生方法调用,即: public abstract class SomeClass() { public void SomeMehod() { SomeOtherMethod(); } internal abstract void SomeOtherMethod(); } 我想testing,如果我打电话SomeMethod()那么我期望SomeOtherMethod()将被调用。 我是否正确地认为这种testing在模拟框架中是可用的?

如何打印uint64_t? 不符合:“格式为”伪造“的”%“

我写了一个非常简单的printf uint64_ttesting代码: #include <inttypes.h> #include <stdio.h> int main() { uint64_t ui64 = 90; printf("test uint64_t : %" PRIu64 "\n", ui64); return 0; } 我使用Ubuntu 11.10(64位)和gcc版本4.6.1来编译它,但失败了: main.cpp: In function 'int main()': main.cpp:9:30: error: expected ')' before 'PRIu64' main.cpp:9:47: warning: spurious trailing '%' in format [-Wformat]

人们如何使用entity framework6进行unit testing,你应该打扰吗?

总的来说,我刚开始使用unit testing和TDD。 我已经涉足了,但现在我决定把它添加到我的工作stream程,并写出更好的软件。 我昨天提出了一个问题,那就是包括了这个问题,但这似乎是一个问题。 我已经坐下来开始实施一个服务类,我将用它来从控制器中抽象出业务逻辑,并映射到使用EF6的特定模型和数据交互。 问题是我已经阻止了自己,因为我不想在存储库中抽象EF(它仍然可以在特定查询的服务之外使用),并且想testing我的服务(将使用EF上下文) 。 在这里,我想是问题,有没有这样的一个点? 如果是这样的话,那么由于IQueryable引起的漏洞抽象,以及Ladislav Mrnka在unit testing这个主题上的许多重要的post都不是直接的,因为Linq提供者在处理内存实现为特定的数据库。 我想testing的代码看起来很简单。 (这只是虚拟代码,试图了解我在做什么,我想用TDD驱动创build) 上下文 public interface IContext { IDbSet<Product> Products { get; set; } IDbSet<Category> Categories { get; set; } int SaveChanges(); } public class DataContext : DbContext, IContext { public IDbSet<Product> Products { get; set; } public IDbSet<Category> Categories { get; set; } public […]

如何在Visual Studio 2015中禁用C#6支持?

背景 我们有一个在VS 2015中开发的项目,启用了C#6,偶尔需要开发者使用VS 2013而不使用C#6。 我们不打算在这个特定的解决scheme中使用C#6(尽可能多的)。 问题 Visual Studio和ReSharperbuild议有用的C#6语言结构,使得Visual Studio早期版本中的解决scheme无法运行,而无需C#6支持。 我禁用了ReSharper C#6支持,但似乎无法在整个解决scheme中禁用/限制C#function。 题 如何在解决scheme或Visual Studio 2015中将C#限制为C#5function?

什么是美元符号($“string”)

我已经在一本书中跑过了一些C#练习,而且碰到了一个例子,这让我难住了。 直接从书中,输出行显示为: Console.WriteLine($"\n\tYour result is {result}."); 现在我好像站立,代码工作和double result如预期地显示。 但是,不明白为什么string前面有$,我决定删除它,现在代码输出数组{result}的名称而不是内容。 这本书不能解释为什么美元在那里,不幸的是。 我一直在淘金的VB 2015帮助和谷歌,关于string格式和Console.WriteLine重载方法。 我没有看到任何解释为什么它是什么。 任何意见,将不胜感激。