Tag: .net 3.5

LINQ – 查找一个列表中不在另一个列表中的所有项目

我坚持使用LINQ查询(或任何其他有效的方法来完成相同的事情)。 有人可以告诉我如何select一个列表中不存在于另一个列表中的所有项目吗? 基本上,我有一个我通过两个其他列表之间的项目匹配而形成的列表。 我需要find匹配找不到的第一个列表中的所有项目。 有人可以在下面的第二个LINQ查询中填写星号,查询可以实现这个目标吗? 如果我使用TSQL,我会做SELECT * NOT IN () ,但我不认为LINQ允许这样做。 //Create some sample lists. List<IdentifierLookupData> list1 = new List<IdentifierLookupData> { /*Init */ }; List<IdentifierLookupData> list2 = new List<IdentifierLookupData> { /*Init */ }; //Find all items in list1 and list2 that match and store them in joinItems. var joinItems = (from d1 in list1 join […]

.Net中LINQ和Lambdaexpression式的效率和性能是什么?

我已经使用.Net 3.5和VS 2008超过一个月。 和大多数.Net开发者一样,我已经从.Net 1.0&2.0和VS 2005的多年经验发展而来。最近,我发现了LINQ和Lambdaexpression式的简单性和强大性,就像我最近的问题,比如在列表中find一个项目LINQ , 使用Lambda或LINQ 将 类实例转换或映射到另一个类的实例列表 ,以及使用Lambda或LINQ 将类的列表转换或映射到另一个类的列表 。 我承认Lambda和LINQ更简单易读,而且看起来非常强大。 在幕后,.NET编译器必须生成大量代码才能实现这些function。 因此,我有点犹豫,转向新的语法,因为我已经知道“老”的方式来实现相同的结果。 我的问题是关于Lambda和LINQ的效率和性能。 也许Lambdaexpression式大多是内联函数,在这种情况下,我猜Lambda应该没问题。 那么LINQ呢? 让我们将讨论限制在LINQ到对象的LINQ到SQL(LINQ到SQL)。 任何意见,比较和经验?

在.NET中多重inheritance有什么好的select?

我在WPF应用程序中遇到了一些与我的类层次结构有关的问题。 这是两个inheritance树合并在一起的问题之一,并且没有任何合理的方法来使inheritance在没有多重inheritance的情况下顺利进行 。 我想知道是否有人有任何明智的想法,让这种系统工作,没有使其无法遵循或debugging。 我是一个低级别的工程师,所以我的第一个想法总是这样:“哦,我会用C ++编写一些这样的类,然后在外部引用它们,然后我可以让所有的老派OO都变得有趣! 唉,当你需要从托pipe控件inheritance时,这没有帮助… 让我展示一下我目前预计的类图: ____________________________________ _____________________________________ | CustomizableObject | | System.Windows.Controls.UserControl | |____________________________________| |_____________________________________| | string XAMLHeader() | ▲ | string XAMLFooter() |◄–┐ | | CustomizableObject LoadObject() | \ | | <Possible other implementations> | \ | |____________________________________| \ | ▲ ▲ \ | | | \ | | | \ […]

你如何确定两个哈希集是否相等(按值,而不是参考)?

我想确定是否在.NET 3.5(C#)中的两个HashSet对象是相同的集合, 即包含相同的值。 这似乎是一个显然想做的事情,但没有提供的function似乎给你这个信息。 我认为这样做的方式是通过检查两组数是否相等,一组是另一组的子集(不适当)。 我认为唯一可能发生的是如果他们是平等的。 示例代码: HashSet<int> set1 = new HashSet<int>(); set1.Add(1); set1.Add(2); set1.Add(3); HashSet<int> set2 = new HashSet<int>(); set2.Add(1); set2.Add(2); set2.Add(3); if(set1.Count == set2.Count && set1.IsSubsetOf(set2)) { // do something } 这会一直工作吗? 有没有更好的办法? 为什么不HashSet有一个public bool IsEqualSetWith()函数?

请求的性能计数器不是一个自定义计数器,它必须被初始化为ReadOnly

每当我尝试debugging.NET Windows服务应用程序时,我都会在性能计数器上得到有关ReadOnly属性的重复错误。 这个应用程序可以在x86 windows vista或x86 windows 2003上正常工作。它只是在我的新的64位开发机器上停止工作。 我已经在pipe理员模式下在64位和32位命令行VCVARS.bat上运行相关的InstallUtil调用。 我没有错误设置类别和每个perf计数器 。 但是,无论我是否只将read_tcct设置为只读,我都会得到: 请求的性能计数器不是一个自定义计数器,它必须被初始化为ReadOnly。 UPDATE 我重新安装了32位版本的Windows 7的机器,奇怪我仍然得到这个错误。 唯一改变的是从Windows Vista Business迁移到Windows 7 Professional。 这响铃吗?

客户资料vs完整

可能重复: .NET 4客户端configuration文件和完整的框架下载之间的区别 我注意到,您可以将.NET应用程序中的目标平台更改为客户端configuration文件或完整configuration文件。 两者有什么区别? 我应该如何select哪个是我的项目正确的?

初学者指南LINQ

在Stack Overflowtesting期间,我看到了很多关于LINQ SQL的问题,但对此一无所知……这听起来很有趣。 什么是LINQ,我该如何开始? 链接指南或文件的奖金:) PS:我很长一段时间每天使用数据表和参数化SQL的C#开发人员

在C#中序列化匿名代表

我想确定使用下面的序列化代理来启用匿名函数/委托/ lambdas的序列化可能导致什么问题。 // see http://msdn.microsoft.com/msdnmag/issues/02/09/net/#S3 class NonSerializableSurrogate : ISerializationSurrogate { public void GetObjectData(object obj, SerializationInfo info, StreamingContext context) { foreach (FieldInfo f in obj.GetType().GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)) info.AddValue(f.Name, f.GetValue(obj)); } public object SetObjectData(object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector) { foreach (FieldInfo f in obj.GetType().GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)) f.SetValue(obj, info.GetValue(f.Name, f.FieldType)); return […]

疑难解答.NET“致命执行引擎错误”

概要: 我定期得到一个.NET的致命执行引擎错误,我似乎无法debugging的应用程序。 出现的对话框仅提供closures程序或向Microsoft发送有关错误的信息。 我试过看更详细的信息,但我不知道如何使用它。 错误: 在“应用程序”下的“事件查看器”中可以看到错误,如下所示 .NET运行时版本2.0.50727.3607 – 致命执行引擎错误(7A09795E)(80131506) 运行它的计算机是Windows XP Professional SP 3.(Intel Core2Quad Q6600 2.4GHz w / 2.0 GB RAM)其他缺乏multithreading下载(见下文)的基于.NET的项目似乎运行得很好。 应用: 该应用程序使用VS2008在C#/。NET 3.5中编写,并通过安装项目进行安装。 该应用程序是multithreading,并使用System.Net.HttpWebRequest及其方法从多个Web服务器下载数据。 我已经确定,.NET错误与线程或HttpWebRequest有关,但是由于这个特殊的错误似乎无法debugging,所以我一直无法得到更接近的结果。 我已经尝试过在很多层次上处理错误,包括Program.cs中的以下内容: // handle UI thread exceptions Application.ThreadException += Application_ThreadException; // handle non-UI thread exceptions AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); // force all windows forms errors to go through […]

是否有可能拦截控制台输出?

我调用了一个方法,比如FizzBuzz() ,我无法控制它。 这个方法使用Console.WriteLine输出一堆东西到控制台。 是否可以拦截由FizzBuzz方法生成的输出? 请注意我的应用程序本身就是一个控制台应用