Questions tagged «c#»

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


14
为什么我不能引用System.ComponentModel.DataAnnotations?
我正在尝试在WPF项目中使用DataAnnotations来指定字符串的最大长度,并具有以下内容: using System.ComponentModel.DataAnnotations; 但是,我得到了错误 类型或名称空间名称“ DataAnnotations”在名称空间“ System.ComponentModel”中不存在(您是否缺少程序集引用?) 我看过其他示例,该名称空间中DataAnnotations 确实存在。我正在使用C#4。有什么原因我不能使用这个吗?我该如何解决?


3
检查list <t>是否包含另一个列表
我有这样的参数列表: public class parameter { public string name {get; set;} public string paramtype {get; set;} public string source {get; set;} } IEnumerable&lt;Parameter&gt; parameters; 和我想检查的字符串数组。 string[] myStrings = new string[] { "one", "two"}; 我想遍历参数列表,并检查source属性是否等于任何myStrings数组。我可以使用嵌套的foreach来做到这一点,但是我想以更好的方式学习如何做,因为我一直在使用linq并喜欢枚举的扩展方法,例如where等,所以嵌套的foreach感觉不对。有没有更优雅的首选linq / lambda / delegete方法来做到这一点。 谢谢
97 c#  list  loops  c#-4.0  subset 

11
输入不是有效的Base-64字符串,因为它包含非Base 64字符
我有一个REST服务,可以将文件转换为Byte数组,然后转换为Base64字符串,然后读取文件并将其发送到另一个控制台应用程序。该部分可以工作,但是当应用程序接收到相同的流时,它将受到操纵,并且不再是有效的Base64字符串。流中引入了一些垃圾字符。 将流转换回Byte时收到的异常是 输入内容不是有效的Base-64字符串,因为它包含非Base 64字符,两个以上的填充字符或填充字符中的非空白字符 服务中: [WebGet(UriTemplate = "ReadFile/Convert", ResponseFormat = WebMessageFormat.Json)] public string ExportToExcel() { string filetoexport = "D:\\SomeFile.xls"; byte[] data = File.ReadAllBytes(filetoexport); var s = Convert.ToBase64String(data); return s; } 申请时: var client = new RestClient("http://localhost:56877/User/"); var request = new RestRequest("ReadFile/Convert", RestSharp.Method.GET); request.AddHeader("Accept", "application/Json"); request.AddHeader("Content-Type", "application/Json"); request.OnBeforeDeserialization = resp =&gt; …
97 c#  file-io  base64 

6
如何在C#中制作内联函数
我正在使用Linq To XML new XElement("Prefix", Prefix == null ? "" : Prefix) 但我想在将前缀添加到xml之前对其进行一些计算,例如消除空格,特殊字符,进行一些计算等 我不想创建函数,因为这些函数对程序的任何其他部分都没有帮助,但是这有什么办法创建内联函数吗?
97 c#  .net 

5
为什么我的进程的Exited方法没有被调用?
我有以下代码,但是为什么ProcessExited从未调用该方法?如果我不使用Windows shell(startInfo.UseShellExecute = false),则相同。 ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.CreateNoWindow = true; startInfo.UseShellExecute = true; startInfo.WindowStyle = ProcessWindowStyle.Hidden; startInfo.FileName = path; startInfo.Arguments = rawDataFileName; startInfo.WorkingDirectory = Util.GetParentDirectory(path, 1); try { Process correctionProcess = Process.Start(startInfo); correctionProcess.Exited += new EventHandler(ProcessExited); correctionProcess.WaitForExit(); status = true; } ..... internal void ProcessExited(object sender, System.EventArgs e) …
96 c#  .net 


5
变量值更改时如何触发事件?
我目前正在使用Visual Studio在C#中创建一个应用程序。我想创建一些代码,以便当变量的值为1时,便执行了一段代码。我知道我可以使用if语句,但是问题是该值将在异步过程中更改,因此从技术上讲,可以在更改值之前忽略if语句。 是否可以创建事件处理程序,以便在变量值更改时触发事件?如果是这样,我该怎么做? 我完全有可能误解了if语句的工作原理!任何帮助将非常感激。

5
在罗斯林使用System.Dynamic
我修改了昨天发布的新版本Roslyn附带的示例,以使用动态和ExpandoObject,但我遇到了编译器错误,不确定如何解决。错误是: (7,21):错误CS0656:缺少编译器必需的成员'Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create' 您还可以在新的编译器中使用动态吗?我怎样才能解决这个问题?这是我更新的示例: [TestMethod] public void EndToEndCompileAndRun() { var text = @"using System.Dynamic; public class Calculator { public static object Evaluate() { dynamic x = new ExpandoObject(); x.Result = 42; return x.Result; } }"; var tree = SyntaxFactory.ParseSyntaxTree(text); var compilation = CSharpCompilation.Create( "calc.dll", options: new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary), syntaxTrees: new[] {tree}, references: …
96 c#  roslyn 

11
在C#中使用流读取大型文本文件
我有一个可爱的任务,要弄清楚如何处理被加载到应用程序的脚本编辑器中的大文件(就像我们的内部产品的VBA一样,用于快速宏)。大多数文件约为300-400 KB,可以很好地加载。但是,当它们超过100 MB时,该过程将很困难(如您所料)。 发生的情况是将文件读取并推入RichTextBox中,然后进行导航-不必过多担心这一部分。 编写初始代码的开发人员只需使用StreamReader并执行 [Reader].ReadToEnd() 这可能需要一段时间才能完成。 我的任务是分解这段代码,将其分块读取到缓冲区中,并显示一个带有取消它选项的进度条。 一些假设: 大多数文件将为30-40 MB 文件的内容是文本(不是二进制),有些是Unix格式,有些是DOS。 检索到内容后,我们便确定使用了哪种终止符。 一旦加载了RichTextBox中呈现所需的时间,就没有人关心。这只是文本的初始加载。 现在开始提问: 我可以简单地使用StreamReader,然后检查Length属性(即ProgressMax)并发出Read来获取设置的缓冲区大小,并在后台工作程序内的while循环WHILST中进行迭代,以便它不会阻塞主UI线程吗?然后,在完成后将stringbuilder返回到主线程。 内容将转到StringBuilder。如果长度可用,我如何用流的大小初始化StringBuilder? 这些(根据您的专业意见)是好主意吗?过去,我从Streams读取内容时遇到了一些问题,因为它总是会丢失最后几个字节或其他内容,但是如果是这种情况,我会问另一个问题。


3
实体框架可查询异步
我正在使用Entity Framework 6处理一些Web API,而我的控制器方法之一是“获取全部”,期望从数据库中以形式接收表的内容IQueryable&lt;Entity&gt;。在我的存储库中,我想知道是否有任何有利的原因来异步执行此操作,因为我是初次使用带有异步功能的EF。 基本上可以归结为 public async Task&lt;IQueryable&lt;URL&gt;&gt; GetAllUrlsAsync() { var urls = await context.Urls.ToListAsync(); return urls.AsQueryable(); } 与 public IQueryable&lt;URL&gt; GetAllUrls() { return context.Urls.AsQueryable(); } 异步版本实际上会在这里带来性能上的好处吗?还是我先投影到一个列表(使用异步方法,然后转到IQueryable)会导致不必要的开销?



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.