小编das*_*ash的帖子

用于创建包含多个空白字符的字符串的替代方法

我想知道是否有更多的OO方式在C#中创建空格.

字面太空码!

我目前有tabs += new String(" ");,我不禁觉得这有点让人联想到使用""而不是String.Empty.

我可以用什么来创建不是的空间" "

c# string spaces

25
推荐指数
4
解决办法
7万
查看次数

使用HTMLAgilityPack选择具有属性data-url的元素

我正在写一个小型的下载 - 机器人,它正在为自己搜索较低层的链接.

我需要找到的是html-Page中的所有链接(.jpg文件的链接以及.pgn,.pdf,.html,......文件的链接)

我正在使用html-agilitypack来查找所有a-href链接.

示例代码:

foreach (HtmlNode link in htmlDocument.DocumentNode.SelectNodes("//a[@href]"))
{
    HtmlAttribute attribute = link.Attributes["href"];
    links.Add(attribute.Value);
}
Run Code Online (Sandbox Code Playgroud)

但我也想找到数据网址.

我必须使用什么XPath语法来查找data-urls.htmlcode中的示例数据url:

    <div class="cbreplay" data-url="2012\edmonton\partien.pgn"></div>
Run Code Online (Sandbox Code Playgroud)

我需要这个例子中的"2012\edmonton\partien.pgn".我如何用XPath语法实现这一点?

最好的问候,如果我犯了一些不好的错误,告诉我.这是我的第一个问题.

.net c# html-agility-pack

12
推荐指数
1
解决办法
9000
查看次数

将Double转换为DateTime?

我有一个.CSV文件,我正在读一个C#程序.在其中一列中,有一个日期,但它采用"通用"格式,因此它在.CSV中显示为数字.例如:41172.

如何在C#中将此数字转换为格式为dd/mm/yyyy的日期?41172相当于20/09/2012.

c# excel datetime datetime-format

10
推荐指数
2
解决办法
3万
查看次数

TreeView搜索

此函数仅查找树视图中的第一个节点,其中包含SearchText.

private TreeNode SearchNode(string SearchText,TreeNode StartNode)
    {
        TreeNode node=null;
        while (StartNode!= null)
        {
            if (StartNode.Text.ToLower().Contains(SearchText.ToLower()))
            {
                node = StartNode; 
                break;
            };
            if (StartNode.Nodes.Count != 0) 
            {
                node=SearchNode(SearchText, StartNode.Nodes[0]);//Recursive Search
                if (node != null)
                {
                    break;
                };
            };
            StartNode = StartNode.NextNode;
        };
        return node;
    }


    private void button1_Click(object sender, EventArgs e)
    {
        string SearchText = this.textBox1.Text;
        if (SearchText == "")
        {
            return;
        };
        TreeNode SelectedNode = SearchNode(SearchText, treeView1.Nodes[0]);
        if (SelectedNode != null)
        {
            this.treeView1.SelectedNode = SelectedNode;
            this.treeView1.SelectedNode.Expand();
            this.treeView1.Select();
        }; …
Run Code Online (Sandbox Code Playgroud)

c# winforms

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

从URL加载Xml时出现超时错误

我正在执行将live xml文件(从live url)加载到XmlDataDocument的任务,但每次我收到错误时:

操作已超时

代码如下,包含xml提要的url,我想将其加载到xmlDoc中.

XmlDataDocument xmlDoc = new XmlDataDocument();
xmlDoc.Load("http://www.globalgear.com.au/productfeed.xml");
Run Code Online (Sandbox Code Playgroud)

请建议任何解决方案.

c# xml asp.net

6
推荐指数
1
解决办法
9579
查看次数

目录存在路径组合与字符串连接

因此,当我构建一个有条件的文件夹/文件检查时,同事说使用Path.Combine"更好":

string finalPath = Path.Combine(folder, "file.txt"); 
Run Code Online (Sandbox Code Playgroud)

而不是我这样做的方式

string finalPath = folder +  "\\file.txt";
Run Code Online (Sandbox Code Playgroud)

任何合理的推理都"更好"?

c# filesystems directory

6
推荐指数
1
解决办法
4126
查看次数

使用.NET的XSLT小写

我使用XMLSpy使用以下XSLT:

<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
    <xsl:output method="xml" version="1.0" encoding="UTF-16" indent="yes"/>
        <xsl:template match="*">
        <xsl:element name="{lower-case(local-name())}">
            <xsl:apply-templates select="@*"/>
            <xsl:apply-templates select="* | text()"/>
        </xsl:element>
    </xsl:template>
    <xsl:template match="@*">
        <xsl:attribute name="{lower-case(local-name())}"><xsl:value-of select="."/></xsl:attribute>
    </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

如果我尝试在我的源代码中使用它(XslCompiledTransform),我会得到一个异常,告诉我函数'lower-case()'不是XSLT synthax的一部分.

所以我改变了一点转变:

fn:lower-case
Run Code Online (Sandbox Code Playgroud)

现在我的例外是找不到以'http://www.w3.org/2005/xpath-functions'为前缀的脚本或外部对象.这件事怎么回事?我该如何解决?

问候

c# xslt

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

C#重构if-else语句代码

请查看我的以下代码......

public enum LogType
{
    Debug,
    Info,
    Warn,
    Error,
    Fatal
}

private static readonly ILog log = 
log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

public void LogError(LogType logtype, string message)
{
    XmlConfigurator.Configure();
    if (logtype == LogType.Debug)
        log.Debug(message);
    else if (logtype == LogType.Error)
        log.Error(message);
}
Run Code Online (Sandbox Code Playgroud)

我不喜欢上面所有的if-else语句,并且相信有更简洁的方法来编写它.我怎么能重构它?log类有不同的Debug,Error等方法.

我想单独调用一个方法让它自动处理它.

LogMyError(LogType.Debug, "I am just logging here");
Run Code Online (Sandbox Code Playgroud)

我该怎么办?我宁愿远离switch语句.我正在寻找一种干净的面向对象的方法.

c# refactoring

5
推荐指数
3
解决办法
1670
查看次数

如何插入BLOB数据类型

我正在使用以下代码插入blob字段:


MySql.Data.MySqlClient.MySqlConnection conn;
MySql.Data.MySqlClient.MySqlCommand cmd;

conn = new MySql.Data.MySqlClient.MySqlConnection();
cmd = new MySql.Data.MySqlClient.MySqlCommand();

string SQL;
int FileSize;
byte[] rawData;
FileStream fs;

conn.ConnectionString = "server=192.168.1.104;uid=root;" +
        "pwd=root;database=cady234;";

fs = new FileStream(@"d:\Untitled.gif", FileMode.Open, FileAccess.Read);
FileSize = (int)fs.Length;

rawData = new byte[FileSize];
fs.Read(rawData, 0, FileSize);
fs.Close();

conn.Open();

string strFileName = "test name";
SQL = "INSERT INTO file (file_name, file_size, file) VALUES ('" + strFileName + "', "+FileSize+", '"+rawData+"')";

cmd.Connection = conn;
cmd.CommandText = SQL;

cmd.ExecuteNonQuery();
conn.Close();
Run Code Online (Sandbox Code Playgroud)

插入正常但使用"在查看器中打开值"时图像未显示:

在此输入图像描述

c# mysql blob

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

计算BinarySearch的比较次数

我的任务是创建两个单独的程序,一个我已经完成的线性搜索程序,以及一个二进制搜索程序.这些程序还必须计算在搜索过程中进行的比较次数.我的线性搜索程序已经计算了我的二进制搜索程序不能进行的比较次数.二进制搜索的代码如下所示:

using System;
using System.Collections.Generic;

public class Example
{
public static void Main()
{

    Console.WriteLine("Input number you would like to search for");

    String Look_for = Console.ReadLine();

    int Lookfor;

    int.TryParse(Look_for, out Lookfor);

    {
        List<int> numbers = new List<int>();

        numbers.Add(1); 
        numbers.Add(2); 
        numbers.Add(3); 
        numbers.Add(4); 
        numbers.Add(5); 
        numbers.Add(6); 
        numbers.Add(7); 
        numbers.Add(8); 

        Console.WriteLine();
        foreach (int number in numbers)
        {
            Console.WriteLine(number);
        }

        int answer = numbers.BinarySearch(Lookfor);

        Console.WriteLine("The numbers was found at:");

        Console.WriteLine(answer);

    }
 }
}
Run Code Online (Sandbox Code Playgroud)

如果有人可以告诉我如何修改它来计算比较,将不胜感激.

非常感谢,马修.

c# algorithm search count

4
推荐指数
2
解决办法
1790
查看次数