【问题标题】:How to break a comma separated string which has SecureInt64 values?如何打破具有 SecureInt64 值的逗号分隔字符串?
【发布时间】:2017-07-10 22:16:50
【问题描述】:

我需要打断一个包含逗号分隔值的字符串

string ids = "P_0vyx5RVcWblbdw6pql5w~~, BAW1G8b3FuRhR0REQ1JtDw~~"

这些值实际上是 SecureInt64。 我需要打破一个集合,我正在尝试如下

var t = ids.Split(',').ToList().OfType<SecureInt64>();

但这并没有破坏收藏。

当我用断点指向 t 时,它会说

'Enumeration yielded no results'

我需要在 Unselcure Ids 中翻译进一步,类似这样的,

t.Select(k => k.UnsecureValue).ToList()

【问题讨论】:

  • 我假设字符串被称为s 而你试图在ids 上拆分只是写问题时的错误?否则,这对我来说拆分字符串就好了。 SecureInt64 是自定义类吗?我以前没听说过。
  • 不,我的错误实际上是 ids,让我纠正它..
  • OfType&lt;T&gt; 将只返回属于 T 类型的对象,并且由于您的集合是 List&lt;string&gt;,因此 stringSecureInt64 之间没有隐式转换。这就是你得到空集合的原因。
  • “这些值实际上是 SecureInt64” - 不,它们不是。它们只是字符串。这些字符串可能以某种方式表示 SecureInt64,但您必须通过解码将该表示转换回 SecureInt64。
  • @rupeshmalviya 如果没有SecureInt64 的来源以及您组装此字符串的部分,我们将无法提供帮助。

标签: c# string break


【解决方案1】:

您需要一种将字符串转换为 SecureInt64 的方法。

var t = ids.Split(',')
           .Select(ToSecureInt64)
           .Select(k => k.UnsecureValue) 
           .ToList();

private SecureInt64 ToSecureInt64(string value)
{
   // logic needed to translate a string to SecureInt64.
}

【讨论】:

  • 这甚至不会编译,因为您使用了返回 void 的方法并试图将其放入 Func&lt;T, U&gt; 类型。更不用说这不是答案,而只是无关紧要的部分。
  • 正如您在对该问题的评论中指出的那样,在我们获得更多信息之前,我们无法填写有助于转换的逻辑。这回答了发布的问题的其余部分,同时隔离了我们目前无法提供帮助的部分。
猜你喜欢
  • 1970-01-01
  • 2015-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-24
相关资源
最近更新 更多