无法修改列表中的struct?

我想更改列表中的货币值,但我总是收到错误消息: 无法修改’System.Collections.Generic.List.this [int]’的返回值,因为它不是变量 怎么了? 我该如何更改价值? struct AccountContainer { public string Name; public int Age; public int Children; public int Money; public AccountContainer(string name, int age, int children, int money) : this() { this.Name = name; this.Age = age; this.Children = children; this.Money = money; } } List AccountList = new List(); AccountList.Add(new AccountContainer(“Michael”, 54, 3, […]

C#中的德语字母和编码

我有一个解压缩function,我使用System.Text.Encoding来确保提取后的文件在提取后保持相同的名称,因为我解压缩的文件通常包含德语字母。 我尝试了不同的东西,比如Encoding.Default或Encoding.UTF8但没有任何作用äÄéöÖüß.txt被转换为„Ž‚”™á.txt或者在默认情况下它是黑盒子:/ 有什么建议? using (ZipArchive archive = System.IO.Compression.ZipFile.Open(ZipFile, ZipArchiveMode.Read, System.Text.Encoding.Default)) { foreach (ZipArchiveEntry entry in archive.Entries) { string fullPath = Path.Combine(appPath, entry.FullName); if (String.IsNullOrEmpty(entry.Name)) { Directory.CreateDirectory(fullPath); } else { if (!entry.Name.Equals(“Updater.exe”)) { entry.ExtractToFile(fullPath,true); } } } }

XDocument保存删除节点前缀

我有一个XML文档(自行开发),其结构如下: UIPTaskId gc8f3715c-4a82-42d2-916c-51515083e7e5 UIPTaskName g359FC555-9CC7-47D4-8ED3-EF973E7D74D7 Responsible Individual Search? g57201da8-62b4-46f2-9329-c71d86f39ffc True 我有一个实用程序来清理XML文档,并使用XDocument加载文件,然后循环通过某些节点并替换值。 完成后,我调用Save方法将文件保存在新位置,经过进一步检查,Save方法在每个节点上删除我的wf前缀。 我怎么能保留这个呢? 难道我做错了什么? 以下是我的代码示例: string wf = “wf”; string wkfl = “C:\\MyFiles\\Temp\\myfile1.rrr”; XDocument xdoc = XDocument.Load(wkfl); XElement variables= xdoc.Descendents(wf + “variables”).Single(); foreach(XElement variable in variables.Elements(wf + “variable”)) { XElement name = variable.Element(wf + “name”); name.Value = name.Value + “_MODIFIED”; } xdoc.Save(wkfl.Replace(“\\Temp\\”, “\\Modified\\”)); Save方法生成以下XML: UIPTaskId […]

将Action 转换为Action

我被卡住了。 如何将Action to an Action转换为C#中Action to an Action ? 关心马格努斯

如何在Main()方法之前在C#中运行静态初始化方法?

给定一个带有初始化方法的静态类: public static class Foo { // Class members… internal static init() { // Do some initialization… } } 如何确保在Main()之前运行初始化程序? 我能想到的最好的是将它添加到Foo : private class Initializer { private static bool isDone = false; public Initializer() { if (!isDone) { init(); isDone = true; } } } private static readonly Initializer initializer = new Initializer(); 这有用还是有一些不可预见的警告? 还有更好的方法吗?

OracleConnection抛出空exception

我正在尝试从我的新PC连接到我的Oracle数据库。 我刚刚安装了Visual Studio和ODAC。 但是,当我尝试做一个简单的连接我得到一个空消息,空源,空数的exception,只是错误代码是-2147467259 。 OracleConnection Prueba; Prueba = new OracleConnection(“Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=XXX.XXX.XXX.XXX)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XXXX)));User Id=XXX;Password=XXX;Pooling=true;Max Pool Size=10;Min Pool Size=1”); Prueba.Open(); 例外细节 这是Exception.ToString()代码: “在Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode,OracleConnection conn,IntPtr opsErrCtx,OpoSqlValCtx * pOpoSqlValCtx,Object src,String procedure)中的Oracle.DataAccess.Client.OracleException 在Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode,OracleConnection conn,IntPtr opsErrCtx,Object src) 在Oracle.DataAccess.Client.OracleConnection.Open() at OracleConnectionS.Program.Main(String [] args)在C:\ Users \ Simetri \ Documents \ Visual Studio 2010 \ Projects \ OracleConnection \ OracleConnection \ Program.cs:第19行“ […]

关闭OpenFileDialog / SaveFileDialog

我们要求关闭子表单作为自动注销的一部分。 我们可以通过从计时器线程迭代Application.OpenForms来关闭子表单。 我们无法使用Application.OpenForms关闭OpenFileDialog / SaveFileDialog,因为未列出OpenFileDialog。 如何关闭OpenFileDialog和CloseFileDialog?

Application.Quit()方法无法清除进程

我已经看过很多关于这个post从Google搜索中返回的post,但是他们中提到的解决方案都没有为我清楚。 所以,我以为我会尝试自己。 在这段代码之后: PowerPoint.Application powerPoint = new Microsoft.Office.Interop.PowerPoint.Application(); powerPoint.Visible = Office.MsoTriState.msoTrue; Microsoft.Office.Interop.PowerPoint.Presentation ppt = null;enter code here 我可以发出ppt.Quit(); 命令和Powerpoint将关闭,没有进程继续运行。 但是,如果在此代码之后我执行此操作: ppt = powerPoint.Presentations.Open(localCopyOfPPT, Microsoft.Office.Core.MsoTriState.msoCTrue, Microsoft.Office.Core.MsoTriState.msoTriStateMixed, Microsoft.Office.Core.MsoTriState.msoTrue); ppt.Close(); powerPoint.Quit(); 然后,Quit()将无法工作。 关于打开演示文稿的东西,即使我然后关闭它,也会阻止Quit()工作,它会出现。 任何人都有任何关于如何让应用程序退出正确的想法?

MVVM了解问题

我对mvvm的问题清单,你不需要自己回答,这些链接对我有帮助,我们将不胜感激: 如果我有一个Mainpage.xaml文件,并且我正在使用一个viewmodelclass,哪些代码应该在Mainpage.xaml.cs文件中? 没有? 这段代码应该在Mainpage.xaml.cs文件中: Viewmodel base = new Viewmodel(); 如果我实现ICommands,我如何访问Mainpage.xaml上的textbox.text? ICommands完全取代了Button.Click事件? 不是吗?

BackgroundWorker WPF与Progress Bar的困难

我正在开发一个WPF,C#应用程序,我必须读取一个非常大的CSV文件并写入数据库。 这个过程需要很长时间,所以我想至少显示一个随着接近完成而增长的进度条。 现在,我在顶部有以下代码: private readonly BackgroundWorker worker = new BackgroundWorker(); 然后在循环内我有这个: worker.WorkerReportsProgress = true; worker.ReportProgress((100 * i) / 10000); 我有一个这样的私人子: private void worker_ProgressChanged(object sender, ProgressChangedEventArgs e) { prgBar.Value = Math.Min(e.ProgressPercentage, 100); } 但我没有看到进度条更新或发生任何事情,程序仍然挂起。 难道我做错了什么? 更新:在这里尝试了MSDN指南http://msdn.microsoft.com/en-us/library/cc221403%28v=vs.95%29.aspx ,我不知道如何使用该示例。 我当然调整了循环部分。 嘿。 它仍然闲置,没有任何更新。 哎呀,我想做的就是得到一个小的计数器,每次读取和添加一行时都会增加。 更新的代码: private BackgroundWorker bw = new BackgroundWorker(); public Process() { bw.WorkerReportsProgress = true; bw.WorkerSupportsCancellation = […]