小编Chu*_*age的帖子

我可以简化这个案例陈述吗?

我有以下内容:

switch (id.Substring(2, 2))
{
    case "00": return("14");
    case "01": return("19");
    case "02": return("19");
    case "03": return("19");
    case "1F": return("19");
    case "04": return("17");
    case "05": return("18");

}
Run Code Online (Sandbox Code Playgroud)

对此不确定但有没有办法将"01","02","03"和"1F"合二为一?

c#

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

XPath - 选择两个节点之间的第一组兄弟节点

我在使用XPath查询C#中的一些HTML文件时遇到了一个小问题.

好的,首先是HTML示例:

<table id="theTable">
    <tbody>
        <tr class="theClass">A</tr>
        <tr class="theClass">B</tr>
        <tr>1</tr>
        <tr>2</tr>
        <tr>3</tr>
        <tr>4</tr>
        <tr>5</tr>
        <tr class="theClass">C</tr>
        <tr class="theClass">D</tr>
        <tr>6</tr>
        <tr>7</tr>
        <tr>8</tr>
        <tr>9</tr>
        <tr>10</tr>
        <tr>11</tr>
        <tr>12</tr>
        <tr>13</tr>
        <tr>14</tr>
        <tr>15</tr>
        <tr class="theClass">E</tr>
        <tr class="theClass">F</tr>
        <tr>16</tr>
        <tr>17</tr>
        <tr>18</tr>
        <tr>19</tr>
        <tr>20</tr>
        <tr>21</tr>
        <tr>22</tr>
    </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

现在,我要做的是只获取B和C节点之间的元素(1,2,3,4,5).

这是我到目前为止所尝试的:

using System;
using System.Xml.XPath;

namespace Test
{
    class Test
    {
        static void Main(string[] args)
        {
            XPathDocument doc = new XPathDocument("Test.xml");
            XPathNavigator nav = doc.CreateNavigator();

            Console.WriteLine(nav.Select("//table[@id='theTable']/tbody/tr[preceding-sibling::tr[@class='theClass'] and following-sibling::tr[@class='theClass']]").Count);
            Console.WriteLine(nav.Select("//table[@id='theTable']/tbody/tr[preceding-sibling::tr[@class='theClass'][2] and following-sibling::tr[@class='theClass'][4]]").Count);

            Console.ReadKey(true);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这段代码运行在上面的HTML上,输出19和5.所以只有第二个XPath表达式可以工作,但这只是因为它搜索的元素class=theClass在它们之前有两个元素,在它们之后有4个元素. …

c# xml xpath siblings

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

Microsoft内部属性 - 此属性没有setter

当我从课堂上看到这个时,我正在使用ILSpy来阅读一些SystemSystem.Internal.HandleCollector类:

internal sealed class HandleCollector
{        
    ... bunch of stuff removed ...

    internal static event HandleChangeEventHandler HandleAdded
    {
        [MethodImpl(MethodImplOptions.Synchronized)]
        add
        {
            HandleCollector.HandleAdded = (HandleChangeEventHandler)Delegate.Combine(HandleCollector.HandleAdded, value);
        }
        [MethodImpl(MethodImplOptions.Synchronized)]
        remove
        {
            HandleCollector.HandleAdded = (HandleChangeEventHandler)Delegate.Remove(HandleCollector.HandleAdded, value);
        }
    }
    ... bunch of stuff removed ...
}
Run Code Online (Sandbox Code Playgroud)

当VisualStudio抱怨(我复制了类)该属性没有setter时,Microsoft如何编译?有人可以分解为什么这可行但我的VS副本抱怨(构建标志?)?

此属性没有setter

每个HandleCollector.HandleAdded =语句都有错误.

c# ilspy visual-studio-2012

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

在XML父节点的开头添加一个节点

我想在父级中添加一个 xmlNode,但在顶部/开头。有XMLNode.AppendChild()我可以使用的变体吗?

.net c# xml xmlnode

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

可访问性不一致:属性类型

这段代码有什么问题?

public ScreenManager _ScreenManager
        {
            get { return screenManager; }
            internal set { screenManager = value; }
        }
        ScreenManager screenManager;
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Inconsistent accessibility: field type 'ScreenSystem.ScreenManager' is less accessible than field 'ScreenSystem.Screen.ScreenManager'
Run Code Online (Sandbox Code Playgroud)

c#

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

在Expression中使用string.Compare(a,b)

从昨天起我一直在教自己表达树,我在比较两个字符串值时遇到了问题.我已经使这个测试用例失败并出现错误:

No method 'Compare' on type 'System.String' is compatible with the supplied arguments.

在运行时失败了 left = Expression.Call(

Type type = typeof(string);
Expression left, right;
left = Expression.Constant("1", type);
right = Expression.Constant("2", type);
// fails at run-time on the next statement
left = Expression.Call(
    typeof(string),
    "Compare",
    new Type[] { type, type },
    new Expression[] { left, right });
right = Expression.Constant(0, typeof(int));
Run Code Online (Sandbox Code Playgroud)

我将在a中使用结果左右Expression.Equal, LessThan, LessThanOrEqual, GreaterThan or GreaterThanOrEqual.这就是Compare方法的原因.

我确信它很简单,我把我的代码简化为这个简单的测试用例.谁知道我哪里出错了?

c# expression expression-trees

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

将MonoTouch.Dialog添加到MonoTouch项目(非Windows)

今天修补MonoDevelop的所有项目都已损坏,我不得不重建它们.

如何将MonoTouch.Dialog添加到项目中?我很确定我会右键单击引用,单击编辑引用然后单击包中找到标记为MonoTouch.Dialog的那个,但我找不到了.

什么是标签(现在)?或者我是否必须从Github下载MonoTouch.Dialog?

最后一个是笑话,因为MonoTouch.Dialog-1.dll仍然在2.1文件夹中

xamarin.ios monotouch.dialog

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

解析URL/Web服务

我向第三方API发出了请求,它以XML格式给出了以下响应.

<?xml version="1.0" ?>
<abc>
<xyz>
<code>-112</code>
<message>No such device</message>
</xyz>
</abc>
Run Code Online (Sandbox Code Playgroud)

我用这段代码读了这个.

 XmlDocument doc = new XmlDocument();
    doc.Load("*** url ***");

    XmlNode node = doc.SelectSingleNode("/abc/xyz");
    string code = node.SelectSingleNode("code").InnerText;
    string msg = node.SelectSingleNode("message").InnerText;

    Response.Write("Code: " + code);
Response.Write("Message: "+ msg);
Run Code Online (Sandbox Code Playgroud)

但我在这一行上收到错误:

string code = node.SelectSingleNode("code").InnerText;
Run Code Online (Sandbox Code Playgroud)

错误是:

你调用的对象是空的.

c# xml asp.net xml-parsing

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

Powershell -Confirm:$ Y.

你好同事们,有人可以告诉我传递方式 - 确认:$ Y使用ac#code.这是我的C#代码,它不接受-Confirm参数.

PowerShell powershell = PowerShell.Create();
PSCommand command = new PSCommand();
command.AddCommand("Remove-MailContact");
string DisplayName = "UniqueValue112";
command.AddParameter("Identity", DisplayName);
command.AddParameter("Confirm", true);
Run Code Online (Sandbox Code Playgroud)

等效的PowerShell代码是

Remove-MailContact -Identity $DisplayName -Confirm:$Y
Run Code Online (Sandbox Code Playgroud)

有人能告诉我如何使用C#传递等效的-Confirm:$ Y?

c# powershell

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

是否有UriAgilityPack/UrlAgilityPack?

我总是试图找出一些用asp.net来操纵uri/url的url/uri方法.

有这样的感觉很高兴:

UriAgilityPack uri = new UriAgilityPack("http://some.com/path?query1=value1");
Run Code Online (Sandbox Code Playgroud)

要么

UriAgilityPack uri = new UriAgilityPack().LoadSiteRelative("~/path?query1=value1");
Run Code Online (Sandbox Code Playgroud)

然后用

enum Schemes {
  Http,
  Https
}

uri.Scheme = Schemes.Https;
Run Code Online (Sandbox Code Playgroud)

和/或

foreach(QueryItem item in uri.Query)
   // do something with item
Run Code Online (Sandbox Code Playgroud)

和/或

uri.Query.Add("AddToCart", 5)
Run Code Online (Sandbox Code Playgroud)

string s = uri.ToString() // https://some.com/path?query1=value1&AddToCart=5

要么

string root = uri.RootPath                // /path?query1=value1&AddToCart=5
string relative = uri.RootRelativePath;   // ~/path?query1=value1&AddToCart=5
Run Code Online (Sandbox Code Playgroud)

c# asp.net

0
推荐指数
1
解决办法
93
查看次数

使用trim.End修剪字符串

我想修剪一个超过1个字符的字符串.字符串:

<incident_response>
<msg_id>50889_360</msg_id>
<inquiry_id>INC000000087930</inquiry_id>
<response_dt>02.26.2013 14:49:12</response_dt>
<status>0</status>
<error></error>
</incident_response>
Run Code Online (Sandbox Code Playgroud)

是的,我知道,它是一个XML文件.

string responseXML;
string inc_number = 
responseXML.Trim().Trim('<inquiry_id>').TrimEnd('</inquiry_id>');
Run Code Online (Sandbox Code Playgroud)

我收到了一个CS1012错误,因为它不止一个字符.我需要整个inquiry_id(INC000000087930),没有任何其他字符.还有其他选择来获得这个号码吗?我不能使用xmlready或类似的东西,因为我从一个API模块中获取XML作为字符串.

c# xml string trim char

0
推荐指数
1
解决办法
271
查看次数

通用参数错误

嗨我试图修复此代码,以便编译,无法找到方法

错误:

Pro\AGeeksToy\Controls\LadderHeader.cs(218,98):错误CS0426:类型名称'menuData'在类型'AGeeksToy.CoreDataTypes.AGeeksToyToolStripMenuItem>中不存在

这是错误.

   private void ChangeStakingType(AGeeksToyToolStripMenuItem<EnhancedType<StakingTypeEnum>>.menuData newType)
    {
        this.StakeBox.StakingType.Value = newType.Data.Value;
    }
Run Code Online (Sandbox Code Playgroud)

AGeeksToyToolStripMenuItem类代码:

  namespace AGeeksToy.CoreDataTypes
{
    using System;
    using System.Windows.Forms;

    public abstract class AGeeksToyToolStripMenuItem<T> : ToolStripMenuItem, AGeeksToyMenu
    {
        public MouseButtons LastMouseButton;
        public MenuData<T> menuData;
        public static readonly VoidEventWithParam<MenuData<T>> RightClicked;

        static AGeeksToyToolStripMenuItem()
        {
            AGeeksToyToolStripMenuItem<T>.RightClicked = new VoidEventWithParam<MenuData<T>>();
        }

        protected AGeeksToyToolStripMenuItem(T obj, string text) : this(obj, text, null)
        {
        }

        protected AGeeksToyToolStripMenuItem(T obj, string text, Control ctrl)
        {
            base.DropDown.ImageList = IconManager.m_ImageList;
            this.menuData = new MenuData<T>(obj, ctrl);
            this.Text = text;
        }

        protected …
Run Code Online (Sandbox Code Playgroud)

c# reflector betfair

-3
推荐指数
1
解决办法
520
查看次数