Tag: c# 4.0

在LINQ结果上将IEnumberable 转换为List ,导致巨大的性能损失

在LINQ结果上你喜欢这样: var result = from x in Items select x; List list = result.ToList(); 但是, ToList真的很慢,是否会使列表变得可变,因此转换速度很慢? 在大多数情况下,我可以设法让我的IEnumerable或Paralell.DistinctQuery但现在我想将项目绑定到DataGridView,因此我需要作为其他东西而不是IEnumerable ,关于如何获得ToList或任何性能的建议替换? 在IEnumerable中的10个百万记录中, .ToList大约需要6秒钟。

使用多个根节点展平IEnumerable并选择Id属性

我有以下层次结构,我需要展平它并选择所有Id 。 我试过像这样使用SelectMany() .SelectMany(node => node.Children).Select(node => node.Id) 。 这将产生3,5,6的列表。 是否有可能使用Linq获得完整列表1,2,3,4,5,6,7 ? 节点(Id = 1) 节点(Id = 2) 节点(Id = 3) 节点(Id = 4) 节点(Id = 5) 节点(Id = 6) 节点(Id = 7)

将不同格式的DateTime转换为特定的String格式

我从不同的机器获取System.datetime.now 。每个系统具有不同的日期时间格式作为下面的大小 16-Oct-12 7:25:22 PM 16/10/2012 7:10:47 PM [DD/MM/YYYY] 10/16/2012 7:10:51 PM [MM/DD/YYYY] 如何将不同格式的DateTime转换为特定的String格式? string sDateTime = DateTime.Now.ToString(“dd/MM/yyyy hh:mm:ss tt”);

使用Reader Writer Lock创建线程安全列表

完全编辑早期版本,以下实现可以是线程安全列表实现。 我只需要知道它是否真的是线程安全的,我知道性能明智仍然存在问题。 目前版本正在使用ReaderWriterLockSlim,我有另一个使用Lock的实现,做同样的工作 使用System.Collections.Generic; 使用System.Threading; /// /// Thread safe version of the List using ReaderWriterLockSlim /// /// public class ThreadSafeListWithRWLock : IList { // Internal private list which would be accessed in a thread safe manner private List internalList; // ReaderWriterLockSlim object to take care of thread safe acess between multiple readers and writers private […]

想要将字面值访问到javascript中

我在页面上有一个文字控件(有一些数据)。 我想在javascript中访问它,并希望在其上放置一些文本。 请告诉我如何在JavaScript中访问文字控件。 我正在尝试使用以下代码 – 使用Javascript: var value= document.getElementById(”) 我得到null值返回。

好奇心:将C#结构转换为对象仍然会复制它

这个问题更多的是出于好奇而不是真正的问题。 请考虑以下代码(C#4.0,如果重要): class Program { static Point myPoint = new Point(3, 5); static void Main(string[] args) { Console.WriteLine(“Point Struct Before: ” + myPoint); object point = GetPoint(); Console.WriteLine(“Point Object Before: ” + point); myPoint.X = 10; Console.WriteLine(“Point Struct After: ” + myPoint); Console.WriteLine(“Point Object After: ” + point); } static object GetPoint() { return myPoint; […]

从Google Chrome下载文件时出现网络错误

我编写了下面的c#代码来下载我的应用程序中的附件,当我运行代码时,我可以使用Mozilla,Internet Explorer下载文件,但这不适用于谷歌浏览器。 string base64FileString = result; byte[] binaryFile = Convert.FromBase64String(base64FileString); Response.ContentType = “application/octet-stream”; Response.AddHeader(“content-disposition”, String.Format(“attachment; filename=\”{0}\””, Request.QueryString[“FILENAME”])); Response.Clear(); Response.BufferOutput = false; Response.ClearContent(); Response.BinaryWrite(binaryFile); Response.Flush(); Response.Close(); 任何人都可以帮助我在Chrome中下载需要做的更改

为什么要使用SqlParameter 而不是嵌入参数?

我有一个sqlhelper类,包含一个重载的ExecuteNonQuery:一个只有一个参数(commandText),另一个有两个参数(commandText,SqlParameter [])。 假设我有一个没有用户交互的独立控制台应用程序,我将调用一个只更新一个包含3个参数的表的存储过程,如果我可以轻松地构建字符串,那么使用SqlParameter []有什么好处?只是将它作为commandText发送? 换句话说,为什么要使用以下内容: SqlParameter[] parameters = { new SqlParameter(“parm1” SqlDbType.VarChar, 3), new SqlParameter(“parm2”, SqlDbType.VarChar, 8), new SqlParameter(“parm3”, SqlDbType.VarChar, 2), new SqlParameter(“parm4”, SqlDbType.VarChar, 4) }; parameters[0].Value = p1; parameters[1].Value = p2; parameters[2].Value = p3; parameters[3].Value = p4; 当我可以使用这样的东西时: strQueryToRun = string.Format(“exec updateTable {0}, {1}, {2}, {3}”, p1, p2, p3, p4); 这是一个独立的控制台应用程序,因此不可能进行SQL注入。 谢谢。

什么是Delphi MatchesMask函数的C#等价物?

C#.NET中Delphi MatchesMask函数的等价物是什么? 我该如何使用它,以及我需要包含哪些命名空间参考? MatchesMask函数如帮助中所述: 指示文件名是否符合筛选字符串指定的格式。 调用MatchesMask以使用Mask参数检查Filename参数以描述有效值。 有效掩码由文字字符,集合和通配符组成。 每个文字字符必须匹配字符串中的单个字符。 与文字字符的比较不区分大小写。 每组以一个开括号([)开头,以一个右括号(]结束。 括号之间是集合的元素。 每个元素都是文字字符或范围。 范围由初始值,短划线( – )和最终值指定。 不要使用空格或逗号分隔集合的元素。 集必须匹配字符串中的单个字符。 如果字符与集合中的某个文字字符相同,或者如果它在集合中的某个范围内,则该字符与集合匹配。 如果字符与初始值,最终值匹配,或者在两个值之间,则字符在范围内。 所有比较都不区分大小写。 如果集合的左括号后面的第一个字符是感叹号(!),则该集合将匹配集合中不包含的任何字符。 通配符是星号(*)或问号(?)。 星号与任意数量的字符匹配。 问号与单个任意字符匹配。 如果字符串与掩码匹配,则MatchesMask返回true。 如果字符串与掩码不匹配,则MatchesMask返回false。 如果掩码在语法上无效,则MatchesMask会引发exception。 注意:Filename参数不必是文件名。 MatchesMask可用于检查字符串与任何语法正确的掩码。

将C#app与Oracle 10g连接:ORA-12154:TNS:无法解析指定的连接标识符

我是数据库工作的初学者。 我试图从ac#应用程序访问Oracle10g数据库。 但是,当我这样做时,我得到这个错误: ORA-12154:TNS:无法解析指定的连接标识符“ 我正在使用以下代码: string oradb = “Data Source=ORCL;User Id=system;Password=goodbye;”; OracleConnection conn = new OracleConnection(oradb); // C# conn.Open(); 连接字符串oradb是否有错误?