Questions tagged «c#»

C#(发音为“ See Sharp”)是由Microsoft开发的一种高级,静态类型的多范例编程语言。C#代码通常针对Microsoft的.NET系列工具和运行时,其中包括.NET Framework,.NET Core和Xamarin。使用此标记可解决有关用C#或C#正式规范编写的代码的问题。


8
以编程方式将列和行添加到WPF Datagrid
我是WPF的新手。我只想知道我们应该如何以编程方式向WPF中的DataGrid添加列和行。我们过去在Windows窗体中执行此操作的方式。创建表的列和行,并将其绑定到DataGrid。 我相信WPF DataGrid与ASP.net和Windows表单中使用的有点不同(如果我错了,请纠正我)。 我需要在DataGrid中绘制行和列的数量,以便用户可以编辑单元格中的数据。

9
如何在多个字段中使用LINQ Distinct()
我有以下来自数据库的EF类(简化) class Product { public string ProductId; public string ProductName; public string CategoryId; public string CategoryName; } ProductId是表的主键。 对于数据库设计者做出的错误设计决定(我无法修改),我在表中有CategoryId和CategoryName。 我需要一个DropDownList的使用(不同)CategoryId的价值,并CategoryName为文本。因此,我应用了以下代码: product.Select(m => new {m.CategoryId, m.CategoryName}).Distinct(); 从逻辑上讲,它应该使用CategoryId和CategoryName作为属性创建一个匿名对象。在Distinct()保证有没有重复对(CategoryId,CategoryName)。 但实际上它不起作用。就我所理解的Distinct()作品而言,收藏中只有一个领域,否则就忽略了它们……对吗?有什么解决方法吗?谢谢! 更新 对不起,product是: List<Product> product = new List<Product>(); 我找到了一种获得与以下结果相同的替代方法Distinct(): product.GroupBy(d => new {d.CategoryId, d.CategoryName}) .Select(m => new {m.Key.CategoryId, m.Key.CategoryName})
75 c#  linq  distinct 

3
如何使用Dapper.NET将C#列表插入数据库
使用 精致的,如何插入C# List数据库。以前没有dapper,我使用下面的代码将List值插入数据库。 try { connection.Open(); for (int i = 0; i < processList.Count; i++) { string processQuery = "INSERT INTO PROCESS_LOGS VALUES (@Id, @st_Time, @ed_Time, @td_Time)"; command = new SqlCommand(processQuery, connection); command.Parameters.Add("Id", SqlDbType.Int).Value = processList[i].ID; command.Parameters.Add("st_Time", SqlDbType.DateTime).Value = processList[i].ST_TIME; command.Parameters.Add("ed_Time", SqlDbType.DateTime).Value = processList[i].ED_TIME; command.Parameters.Add("td_Time", SqlDbType.DateTime2).Value = processList[i].TD_TIME; dataReader.Close(); dataReader …
75 c#  sql-server  dapper 

3
如何在Action中传递参数?
private void Include(IList<string> includes, Action action) { if (includes != null) { foreach (var include in includes) action(<add include here>); } } 我想这样称呼 this.Include(includes, _context.Cars.Include(<NEED TO PASS each include to here>)); 想法是将每个包含传递给方法。
75 c#  .net  action 

4
从非异步代码调用异步方法
我正在更新具有.NET 3.5中内置的API表面的库。结果,所有方法都是同步的。我无法更改API(即,将返回值转换为Task),因为这将要求所有调用者都进行更改。因此,我剩下如何以同步方式最好地调用异步方法了。这是在ASP.NET 4,ASP.NET Core和.NET / .NET Core控制台应用程序的上下文中。 我可能还不够清楚-这种情况是我有不支持异步的现有代码,并且我想使用仅支持异步方法的新库,例如System.Net.Http和AWS开发工具包。因此,我需要弥合差距,并能够拥有可以被同步调用但可以在其他地方调用异步方法的代码。 我已经读了很多书,而且有很多次被问及回答了。 从非异步方法调用异步方法 同步等待异步操作,为什么Wait()在这里冻结程序 从同步方法中调用异步方法 如何同步运行异步Task <T>方法? 同步调用异步方法 如何在C#中从同步方法调用异步方法? 问题是大多数答案都不一样!我见过的最常见的方法是使用.Result,但这会导致死锁。我已经尝试了以下所有方法,并且它们都能正常工作,但是我不确定哪种方法可以避免死锁,具有良好的性能并且可以在运行时很好地发挥作用(在尊重任务调度程序,任务创建选项等方面) )。有明确的答案吗?最好的方法是什么? private static T taskSyncRunner<T>(Func<Task<T>> task) { T result; // approach 1 result = Task.Run(async () => await task()).ConfigureAwait(false).GetAwaiter().GetResult(); // approach 2 result = Task.Run(task).ConfigureAwait(false).GetAwaiter().GetResult(); // approach 3 result = task().ConfigureAwait(false).GetAwaiter().GetResult(); // approach …

6
如何在C#中对SMTP进行身份验证
我创建使用SMTP发送消息的新ASP.NET Web应用程序。问题是smtp未被发送邮件的人验证。 如何在程序中对SMTP进行身份验证?C#是否具有一个具有用于输入用户名和密码的属性的类?

22
WCF,在ServiceHost指令中找不到Service属性值
我正在尝试使用IIS 6托管我的服务,但我一直收到此异常。 Server Error in '/WebServices' Application. -------------------------------------------------------------------------------- The type 'QS.DialogManager.Communication.IISHost.RecipientService', provided as the Service attribute value in the ServiceHost directive could not be found. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and …
75 c#  wcf  iis 

4
WPF或Windows窗体
我已经使用C#控制台应用程序大约一年了,我想继续创建GUI应用程序。除了基本的Java应用程序外,我从未进行过任何GUI开发,但我想继续使用C#。我应该开始学习Windows窗体还是直接跳到WPF?有很大的不同吗?WPF是建立在Windows窗体之上还是完全不同?
75 c#  wpf  windows  winforms  c#-4.0 

10
C#中的转义命令行参数
简洁版本: 将参数用引号引起来并转义\和是否足够"? 代码版本 我想string[] args使用ProcessInfo.Arguments将命令行参数传递给另一个进程。 ProcessStartInfo info = new ProcessStartInfo(); info.FileName = Application.ExecutablePath; info.UseShellExecute = true; info.Verb = "runas"; // Provides Run as Administrator info.Arguments = EscapeCommandLineArguments(args); Process.Start(info); 问题是我将参数作为数组获取,必须将它们合并为单个字符串。可以设计一个参数来欺骗我的程序。 my.exe "C:\Documents and Settings\MyPath \" --kill-all-humans \" except fry" 根据这个答案,我创建了以下函数来转义单个参数,但是我可能错过了一些东西。 private static string EscapeCommandLineArguments(string[] args) { string arguments = ""; foreach …


11
清除.NET StringBuilder内容的最佳方法
我想问一下您认为清除内容以便重用StringBuilder的最佳方法(持续时间更少/消耗的资源更少)是什么。想象以下情况: StringBuilder sb = new StringBuilder(); foreach(var whatever in whateverlist) { sb.Append("{0}", whatever); } //Perform some stuff with sb //Clear stringbuilder here //Populate stringbuilder again to perform more actions foreach(var whatever2 in whateverlist2) { sb.Append("{0}", whatever2); } 在清除StringBuilder时,我可以想到两种可能性: sb = new StringBuilder(); 要么 sb.Length = 0; 清除它的最佳方法是什么?为什么? 谢谢。 编辑:用当前的.NET 3.5版本。

8
C#通过Windows API从文件获取缩略图
Windows资源管理器具有显示文件缩略图的功能。这些缩略图由核心和第三方Shell扩展提供。 我知道如何扩展外壳以向Windows提供缩略图。 我想做的是使用C#通过外壳从系统上的任何文件中检索缩略图。这可能吗? 本质上,我正在编写一个自定义文件浏览器,并且想要显示缩略图,并且无法解析地球上的每个文件来制作自己的缩略图。 说明:许多答案似乎都围绕网页缩略图或缩放图像。但这根本不是我想要的。我想要的是询问Windows这些文件类型的缩略图表示:.DOC,.PDF,.3DM,.DWG ...和mabye,还有十几种。我不想自己解析,渲染和制作缩略图,因为Windows已经知道如何操作。 我作为答案发布的代码实际上是有效的……也许可以对其进行简化和清理。
75 c#  windows-shell 

11
如何设置要在启动时启动的程序
我有一个小型应用程序,CheckBox如果用户希望该应用程序从Windows启动,可以对其进行设置。 我的问题是如何实际设置应用程序在启动时运行。 ps:我在C#和.NET 2.0中使用。
75 c#  windows 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.