小编Ian*_*n P的帖子

格式化以下字符串的最有效方法是什么?

我有一个非常简单的问题,我不应该挂在这上面,但我是.哈哈!

我有一个字符串,我收到以下格式:

123

123456-D53

123455-4D

234234-4

123415

格式化后的所需输出是:

123-455-444

123-455-55

123-455-5

要么

123-455

格式最终取决于原始字符串中的字符总数.

我有几个关于如何做到这一点的想法,但我保留了比string更好的方法.替换和连接......

谢谢你的建议..

伊恩

c# string formatting

5
推荐指数
1
解决办法
234
查看次数

将PDF页面打印到网络打印机(IP地址)

我正在尝试将PDF页面打印到我们的网络打印机上.

我搜索并发现了大量类似的查询但是每个人都建议将网络打印机添加为本地打印机,它应该没问题.

我完全一样,能够打印,但使用打印机名称(而不是IP).

我的问题是,我们可以使用IP而不是打印机的名称打印它吗?

我需要这个,因为如果明天我们更改打印机然后我必须再次在代码中更改它.我目前正在使用GhostScript使用以下代码进行打印.

 string PrinterIP = "10.0.6.251"; //OKI B430(PL) - When I specify the name it works fine. but it gives me error with IP
 System.Diagnostics.ProcessStartInfo startInfo = new ProcessStartInfo();
 startInfo.Arguments = @" -dPrinted -dBATCH -dNOPAUSE -dNOSAFER -q -dNumCopies=" + Convert.ToString(1) + @" -sDEVICE=ljet4 -sOutputFile=""\\spool\" + PrinterIP + @""" """ + PDFFilePath + @"""";
 startInfo.FileName = "C:\\Program Files\\gs\\gs9.07\\bin\\gswin64c";//GhostScriptPath; 
 startInfo.UseShellExecute = false;
 system.Diagnostics.Process process = Process.Start(startInfo);
Run Code Online (Sandbox Code Playgroud)

c# ghostscript

5
推荐指数
0
解决办法
1408
查看次数

Seed()将进度输出到Package Manager控制台

在我的POCO迁移的Seed()方法中,我正在尝试向Package Manager控制台输出一条消息,我尝试了以下操作但没有运气.

protected override void Seed(DBContext context)
{
    Console.WriteLine("Test Message");
    Debug.WriteLine("Test Message");
}
Run Code Online (Sandbox Code Playgroud)

使用-Verbose命令不会对输出产生任何影响.

关于如何进行的任何想法?

c# poco nuget

5
推荐指数
0
解决办法
504
查看次数

5
推荐指数
0
解决办法
347
查看次数

Mono没有从我的app.config读取值?

我有一个app.configVisual Studio 2010创建的.NET 4.0控制台应用程序的标准,在项目设置选项卡中添加设置,如MSDN中所述:应用程序设置.

如果我MyAsseblyName.exe.config在同一目录中更新结果文件中的设置值,那么运行我在代码中看到的exe,方法是:

Properties.Settings.Default.MySetting;
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用上面的行在Ubuntu 14.04上运行Mono 3.2.8(使用相同的构建和相同文件),则会在项目"设置"选项卡上指定默认值,而不是MyAsseblyName.exe.config文件中的更新值.

我需要做什么来单声道使用像app这样的app.config,如果它们在那里,那么从文件中读取值?

解决方法

对于遇到此问题的其他人,我可以通过将app.config中的设置移动到项目设计人员创建或创建的old-school <appSettings>元素来解决此问题.然后你可以使用:<userSettings><applicationSettings>

var myValue = ConfigurationManager.AppSettings["MyKey"];
Run Code Online (Sandbox Code Playgroud)

请参阅http://msdn.microsoft.com/en-AU/library/system.configuration.configurationmanager.appsettings(v=vs.100).aspx

c# mono app-config

5
推荐指数
0
解决办法
2600
查看次数

如何将ThreadPool.QueueUserWorkItem中的信息传递回UI线程?

我有一个相当简单的线程问题.

我正在编写一个简单的实用程序,它将根据用户定义的参数运行各种SQL脚本.

为了保持UI响应并提供有关正在执行的脚本状态的反馈,我决定使用ThreadPool.QueueUserWorkItem适合处理各种脚本的执行(通过SMO).

但是,我对如何中继SMO将返回UI线程的输出信息感到困惑.

对于这个实用程序,我使用WPF和MVVM进行演示.我想我会有一个ScriptWorker类,我可以传递参数和位置以及运行脚本的顺序.

在我运行每个脚本之后,我想以某种方式将结果返回到UI线程,以便它更新输出窗口,然后我希望工作者转移到下一个任务.

我确定这是一个基本问题,但在看到QueueUserWorkItem并看到我基本上通过回调开始工作后,我不确定我将如何完成我想要完成的任务.

我基于这篇微软文章做了我的假设:

http://msdn.microsoft.com/en-us/library/3dasc8as(VS.80).aspx

谢谢(你的)信息!

c# wpf multithreading .net-3.5

4
推荐指数
1
解决办法
2953
查看次数

生成一系列随机数?

(我做了一次搜索,并没有看到重复.如果有的话我会提前道歉.)

我需要重复调​​用执行某些模拟的方法.此方法接受一些静态变量作为参数,并返回从随机数(double)(0.01 - 100.00)派生的计算结果.

但是,假设Random类构造函数将其种子基于当前系统时间,如果我连续25次调用该方法,那么我可以得到75.01,结果全部为25次.

是否有一种相对简单的方法可以在每次方法调用时获得几乎保证不同的数字?

我怀疑这有点容易实现,我只是不知所措.

谢谢!

c# random .net-3.5

2
推荐指数
1
解决办法
1063
查看次数

使用Office Interop与Excel和.NET 4.0/4.5的问题

当我以.NET 3.5为目标时,我有以下一些代码可以正常工作:

Microsoft.Office.Interop.Excel.Application _excelInstance;
Microsoft.Office.Interop.Excel.Worksheet _excelWorksheet;
Microsoft.Office.Interop.Excel.Workbook _excelWorkbook;

_excelInstance = new Microsoft.Office.Interop.Excel.Application();
_excelWorkbook = _excelInstance.Workbooks.Add();
_excelWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)_excelWorkbook.Worksheets.get_Item(1);
Run Code Online (Sandbox Code Playgroud)

但是,当我以.NET 4.5为目标时,编译器会为上一行提供以下错误:

无法找到编译动态表达式所需的一种或多种类型.你错过了参考吗?

我无法为此项目定位.NET 3.5,它必须是4.0或4.5.

知道会导致这种情况的原因,或者我应该如何解决这个问题?

谢谢.

编辑 -

以下是有趣的课程:

public class ExcelWriter : IDisposable
{
    private string _outputFile;

    public ExcelWriter(string outputFile)
    {
        _outputFile = outputFile;
    }

    public void Write(List<string[]> data)
    {
        Microsoft.Office.Interop.Excel.Application _excelInstance;
        Microsoft.Office.Interop.Excel.Worksheet _excelWorksheet;
        Microsoft.Office.Interop.Excel.Workbook _excelWorkbook;

        _excelInstance = new Microsoft.Office.Interop.Excel.Application();
        _excelWorkbook = _excelInstance.Workbooks.Add();
        _excelWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)_excelWorkbook.Worksheets.get_Item(1);

        int rowNumber = 1;

        foreach (var row in data)
        {
            int columnNumber = 1; …
Run Code Online (Sandbox Code Playgroud)

.net c# excel

2
推荐指数
1
解决办法
7150
查看次数