当前位置: 首页 > 面试题库 >

LINQ to Entities在结果上分割字符串

糜野
2023-03-14
问题内容

我有一条LINQ语句,如下所示:

var playedBanDataList =
    from bannedPlayers in query
    select new PlayerBanData
    {
        Admin = bannedPlayers.Admin,
        BannedUntil = bannedPlayers.BannedUntil,
        IsPermanentBan = bannedPlayers.IsPermanentBan,
        PlayerName = bannedPlayers.PlayerName,
        Reason = bannedPlayers.Reason,
        IpAddresses = bannedPlayers.IpAddresses.Split(new [] {","}, StringSplitOptions.RemoveEmptyEntries).ToList()
    };

    return playedBanDataList.ToList();

这将失败,因为拆分功能失败,IpAddresses因为LINQ to Entities无法将此查询转换为SQL。

这是有道理的,但是优雅地实现这一目标的等效方法是什么?我想到的唯一方法是在检索到的字符串上手动运行一个循环,然后将其拆分,但我想一次获得它。


问题答案:

您可以AsEnumerable用来使选择发生在内存中,而不是EF中。

var playedBanDataList = query.AsEnumerable()
    .Select(bannedPlayers => new PlayerBanData
    {
        Admin = bannedPlayers.Admin,
        BannedUntil = bannedPlayers.BannedUntil,
        IsPermanentBan = bannedPlayers.IsPermanentBan,
        PlayerName = bannedPlayers.PlayerName,
        Reason = bannedPlayers.Reason,
        IpAddresses = bannedPlayers.IpAddresses.Split(
            new [] {","}, 
            StringSplitOptions.RemoveEmptyEntries).ToList()
    });


 类似资料:
  • 我有一个字符串a如下 我想用拆分这个字符串。所以我使用了以下代码来拆分它 获得: 需要< code>split.length: 我不明白我做错了什么。无论我使用什么正则表达式,我都得到相同的结果。此外,我无法修改字符串。 谁能帮我把作为数组长度。

  • 问题内容: 我有以下字符串: 我“肯定”想“上学”。 现在,我想在省略号处分割此字符串,即我想获得以下输出: 我会 一定 喜欢 上学 。 问题答案: 如果您是用引号()代替省略号,最简单的解决方案是使用 :

  • 问题内容: 如何用定界符分割字符串,但是如果转义了,则不能分割?例如,我有一个字符串: 定界符为,转义定界符为。此外,我想忽略转义的反斜杠,因此中的仍然是分隔符。 因此,使用上面的字符串,结果应该是: 问题答案: 使用黑魔法: 匹配一个反斜杠,后跟一个字符,将其跳过并匹配您的定界符。

  • 问题内容: 我有以下文字: 我尝试做一个,但是我的数组是由单个字符而不是每个分区组成的。 问题答案: 是正则表达式中的特殊符号。使用代替。 我将解释为什么要附加两个斜杠。为了逃脱,我需要。然而,代表字符串,是必需的,因为本身需要一个字符串横向转义。 而且,正如xagyg在评论中指出的那样,split将把参数视为正则表达式。它不会被视为纯字符串。 在这种使用情况下,您可能有兴趣了解Pattern.q

  • 问题内容: 我有类似的字符串,我需要将它们按字符分开,然后将两个部分分别分配给一个变量。在Ruby中,我会这样做: 显然,Lua没有这么简单的方法。经过一番挖掘,我找不到一种简短的方法来实现自己的目标。我提到我是Lua的一个新手,我需要在Redis的脚本中使用它(因此,它确实应该很小,如果可能的话,只写一个)。 问题答案: 使用模式匹配: 请注意,这是一个魔术字符,因此必须使用进行转义。

  • 问题内容: 对于在字符串中 最后一次 出现定界符时拆分字符串的建议Python惯用法是什么?例: 接受第二个参数,即要分割的分隔符的出现。像常规列表索引一样,表示末尾的末尾。如何才能做到这一点? 问题答案: 使用 或代替: 可让您指定分割次数,而仅分割一次,但总是返回固定数量的元素(前缀,定界符和后缀),并且对于单个分割情况而言更快。 演示: 两种方法都从字符串的右侧开始拆分;通过将最大值作为第二