2011-08-29 97 views
3

以前从未见过类似的东西。我正在做一个非常简单的DataReader值分配。.NET字符串赋值删除字符

story.Byline = _r["Byline"].ToString(); 

_r["Byline"].ToString()story.Byline值是分配后的不同。以下是立即窗口的输出:

story.Byline 
"Associated Press - FIRST LASTAssociated Press - FIRST LAST" 
_r["Byline"].ToString() 
"Associated Press - FIRST LAST<br />Associated Press - FIRST LAST" 

为什么<br />被删除?

+0

'story.Byline'是什么样的? – dlev

+0

story.Byline只是一个公共字符串。我复制显示值的即时窗口的输出。 – Dzejms

+3

'_r [“Byline”]'是什么类型?它是一个XML节点吗?尝试'_r [“Byline”]。GetType()。Name'。它可能*'.ToString()'删除一些格式,但如果'_r [“Byline”]'是字符串类型则不会。 – Kobi

回答

0

好了,这是一个有点尴尬:

public string Byline 
{ 
    get { return !_elements.ContainsKey("Byline") ? "" : (string)_elements["Byline"]; } 
    set 
    { 
     string _buf = Functions.StripTags(value); 
     _elements["Byline"] = _buf; 
    } 
} 

不正确的假设FTL。这个问题可以删除吗?

+0

编辑原始答案,而不是发布另一个“答案”。要强制关闭,请将其标记并请主持人关闭。 – abatishchev

0

调用reader["x"].ToString()你实际上调用x'类型可能被覆盖的方法ToString()

如果您确定它是字符串,请使用reader.GetString(reader.GetOrdinal("x"))