一个对象上的垃圾收集,C#

我需要处理一个对象,以便它可以释放它拥有的所有东西,但是它没有实现IDisposable,所以我不能在using块中使用它。 如何让垃圾收集器收集它?

改变WinForm边框的风格?

是否可以改变WinForm边框的样式? 我知道如果边框被删除,它会夺走调整程序大小的function。 因此有没有办法改变它的风格,但保持它可resize?

C#EmptyIfNull扩展,用于任何IEnumerable返回空派生类型

假设nulls和空集合是等价的,我正在尝试为IEnumerable类型编写一个扩展方法,以返回派生类型的空集合而不是null。 这样我就不必在整个地方重复进行空检查,而且我没有得到一个我必须强制转换的IEnumerable。 例如 List MethodReturningFooList() { … } Foo[] MethodReturningFooArray() { … } void Bar() { List list = MethodReturningFooList().EmptyIfNull(); Foo[] arr = MethodReturningFooArray().EmptyIfNull(); } public static class Extension { public static T EmptyIfNull(this T iEnumerable) where T : IEnumerable, new() { var newTypeFunc = Expression.Lambda<Func>(Expression.New(typeof(T))).Compile(); return iEnumerable == null ? newTypeFunc() : iEnumerable; } […]

每秒运行一次Visual C#

我有计时器的问题。 我在函数中有函数(在函数中绘制) void func(){ /*…do something … */ for(){ for() { /*loop*/ draw(A,B, Pen); } /*… do something …*/ } } 这是绘图function public void draw1(Point Poc, Point Kra, Pen o) { Graphics g = this.CreateGraphics(); g.DrawLine(o,Poc.X+4, Poc.Y+4,Kra.X+4, Kra.Y+4); g.Dispose(); } 我在按钮点击时调用函数’func’ private void button4_Click(object sender, EventArgs e){ func(); } 我想调用绘制函数evry second(每秒绘制一行)。 在绘图之间,函数需要继续工作并计算=循环,并绘制下一行一段时间(间隔)。 我试过了 timer1.Tick += […]

围绕折线创建多边形,如缓冲区

我环顾四周寻找一个如何获取折线并在其周围创建缓冲区的示例,以便最终得到一个多边形。 到目前为止,我发现我需要Minkowskis Sums这样做,但我无法理解原始算法并将其转换为代码。 我更喜欢C#中的一个例子或算法的演练。

带有附加列的sql批量插入

csv文件包含8列(col1,col2,…,col8),文件名也包含必须插入表中的日期。 如果表中的列数和csv文件中的列相等,则以下查询将文件中的所有记录导入到表中: query += “BULK INSERT real_data FROM ‘” + path + “‘ WITH (FIELDTERMINATOR = ‘,’, ROWTERMINATOR = ‘\n’)”; 到目前为止,我还没有找到修改查询的解决方案,以便新记录可以包含从文件名中提取的日期。 无论如何,我已经创建了一个提取日期的函数: DateTime eventTime = extractDate(path); 并且希望将eventTime插入到从文件导入的每个记录的第9列。 有谁知道如何修改/创建查询语句从文件导入8列,并为每个导入的记录添加日期为第9列? 谢谢!

如何一次删除文件和应用程序数据容器值?

我的应用程序中有一个重置function,它将应用程序恢复到默认状态。 因为我需要删除我创建的四个文件并删除我在ApplicationDataContainer创建的设置。 这是我删除文件的方式 try { StorageFile file = await localfolder.GetFileAsync(“HistoryFile”); if (file != null) { await file.DeleteAsync(); } } catch { //Catch Process } 是否有一个将所有文件一起删除的function? 当我尝试以下代码时 localfolder.DeleteAsync() 它删除了LocalState文件夹以及文件,我需要删除文件而不是文件夹。 无论如何,我可以一次性删除存储在ApplicationDatacontainer中的所有值吗? 而不是像这样一个一个地删除它们? localSettings.DeleteContainer(“exampleContainer”);

在C#中使用不同的数据类型加入两个字典

我有两本词典,即 Dictionary DictA=new Dictionary(); Dictionary DictB=new Dictionary(); DictA.Add(“A”,”A1″); DictA.Add(“B”,”B1″); DictA.Add(“C”,”C1″); DictB.Add(“A”,10); DictB.Add(“B”,20); DictB.Add(“K”,30); 现在我需要像这样形成第三个字典。 我非常确定这对于Dictionaries或Lambda Expressions的操作是可行的,但不确定如何实现这一点。

将SQL子查询转换为In到Linq Lambda

如何将以下SQL语句转换为Lambda表达式或Linq查询? 以下查询获取每个问题的单个最新答案。 或者用另一种方式来表达,用最新的答案得到每个问题。 这也将由Entity Framework执行。 SELECT Answers.* FROM Answers Where AnswerID IN ( SELECT Max(AnswerID) AnswerID FROM Answers GROUP BY QuestionID ) 这是使用内部联接查看上一个查询的另一种方法 SELECT answers.* FROM answers INNER JOIN ( SELECT Max(answerID) answerID –, QuestionSiteID FROM answers GROUP BY QuestionID ) t ON answers.answerID = t.answerID 我已经读过LINQ Contains方法对于访问SQL的查询是次优的。 LINQ to Sql和.Contains()陷阱。

错误:已经有一个与此命令关联的打开DataReader,必须先关闭它

我正在使用sql连接来访问我的数据库中的不同表。 但是代码返回以下错误。 错误: “已经有一个与此命令关联的打开的DataReader必须先关闭” : MyContext conn = new MyContext() protected void ChangeName(int id) { User user = conn.MyOtherTable.First(x => x.id == id); var elements = conn.MyTable.Where(x => x.id == id && x.name == name).OrderBy(x => x.id).OrderBy(x => x.name). .Select(t => new { t.id, t.name, }).GroupBy(t => new { t.id, t.name, }); foreach (var item […]