C# 创建具有所有可能组合的字符串

2024-05-01

所以我有一个需要字符串的方法。该字符串由一个常量值和 2 个布尔值、2 个常量整数和一个可以是 10,20 或 30 的整数组成。这都是一个字符串,其中参数由下划线分隔。

Example:

string value = "horse"
string combination1 = value+"_true_false_1_1_20";
dostuff(combination1);

我需要运行每一个可能的组合

如何获取这个常量值并通过该方法使用所有可能的组合运行它?

构建的字符串:“VALUE_BOOL1_BOOL2_CONSTINT1_CONSTINT2_INT1”

Possibilities
    VALUE = Horse
    BOOL1 = True, False
    BOOL2 = True, False
    CONSTINT1 = 1
    CONSTINT2 = 1,
    INT1 = 10, 20, 30

如何获取预定义的值字符串并创建所有可能的组合并通过 doStuff(string Combination) 方法运行它们?


您可以使用非常易读的 LINQ 语句来完成此操作,而无需使用循环:

public static List<String> Combis(string value)
{   
  var combis =
    from bool1 in new bool[] {true, false}
    from bool2 in new bool[] {true, false}
    let i1 = 1
    let i2 = 1
    from i3 in new int[] {10, 20, 30}
    select value + "_" + bool1 + "_" + bool2 + "_" + i1 + "_" + i2 + "_" + i3;

  return combis.ToList();
}

编辑:请记住,必须在上述解决方案中创建多个数组,因为子句被评估多次 https://stackoverflow.com/questions/34975128/how-often-is-the-in-clause-evaluated-in-a-linq-query。您可以将其更改为以下内容来规避此问题:

public static List<String> Combis(string value)
{
    bool[] bools = new[] {true, false};
    int[] ints = new[] {10, 20, 30};

    var combis =
        from bool1 in bools
        from bool2 in bools
        let i1 = 1
        let i2 = 1
        from i3 in ints
        select value + "_" + bool1 + "_" + bool2 + "_" + i1 + "_" + i2 + "_" + i3;

    return combis.ToList();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 创建具有所有可能组合的字符串 的相关文章

随机推荐

  • 如何从屏幕上的任意位置拖动底页?

    我正在尝试实现类似 YouTube 的体验 并允许用户从屏幕中的任何位置拖动底部工作表 我尝试了很多解决方案没有任何帮助 我终于从这个解决方案中找到了解决方案在外部区域达到阈值后允许 BottomSheet 向上滑动 https stack
  • ASP.NET 中的大数组支持

    最近有了 4 5 NET 支持 用户可以为一个对象分配超过 2 GB 的内存 为了做到这一点 用户可以在 app config 文件中将 gcAllowVeryLargeObjects 设置为 true 一切都会正常工作 但是我很难找到 A
  • MVC 自定义路由。 DataTokens["Namespaces"] 被忽略

    我不知道为什么在创建时CustomRoute它继承自Route 场DataTokens Namespaces 被忽略 我收到错误 发现多种类型与名为 Home 的控制器匹配 如果服务此请求的路由 action id 未指定命名空间来搜索与请
  • 是否可以在 Lambda 表达式中包含 SqlFunctions.StringConvert?

    我一直在学习表达式并使用下面的代码添加针对数据库模型构建的表达式 EF4 ORACLE 而不是 SQL 这非常适合 Oracle 并允许我动态构建谓词 例如 CustomerId Contains 2 into f gt f Custome
  • 为什么 to_proc 在 Ruby 改进中不起作用?

    看起来to proc不适用于细化中定义的方法 module ArrayExtensions refine Array do def sum reduce 0 end end end using ArrayExtensions puts 1
  • Flaky Android Espresso 测试 - Snackbar

    1 所有正在测试的设备 模拟器都禁用了动画 2 我有一个 BeforeClass 来构建我的 Credentials 对象 3 我有一个IntenServiceIdlingResource和一个EventBusIdlingResource
  • 我应该为 PyDev 下载哪个 Eclipse 包?

    我应该选择哪个 Eclipse 包来进行 Python 开发PyDev http www pydev org Eclipse 主页上没有任何内容告诉我要选择什么 并且 PyDev 文档假设我已经安装了 Eclipse 我选择哪个 Eclip
  • 错误:在 Google 应用引擎上部署节点 js 时找不到模块“/workspace/server.js”

    经过一周的搜索 我无法找到适用于我的 Node js 应用程序的应用程序引擎部署问题的解决方案 我已经用这个替换了原来的代码Express 的 hello world 示例 https expressjs com en starter he
  • 重定向到无状态会话的原始 URL

    我正在尝试创建无状态安全性 其中 JWT 令牌存储在 Cookie 而不是 SESSION 中 问题是如果没有会话SavedRequestAwareAuthenticationSuccessHandler不知道原始请求 在弹出身份验证页面之
  • SPA 模式下的 AngularJS 和元标记

    你们中有人已经找到了一种在 SPA 模式下使用 AngularJS 处理元标签的优雅方法吗 在基本模板中 我有一些默认的元标记 对于每条路线 每个控制器都会加载具有不同内容的不同视图 很正常 但是我如何更改每个页面的元标记呢 此外 有些页面
  • XAML UWP 浮出控件定位

    I am implementing a Flyout in a UWP app as you can see on the image below I want the AutoSuggestBox in the Flyout to app
  • 索引数组时应该始终使用 size_t 吗?

    我需要使用吗size t总是在索引数组时即使数组没有大到超过 int 的大小 这不是我应该什么时候使用的问题size t 我只想知道 例如 一个程序是否具有 2GB 可用内存 所有这些字段都可以通过 int32 进行索引 但该内存 虚拟内存
  • Java Swing - JLabel 位置

    我在设置 Jlabel 位置时遇到问题 我将内容窗格设置为某个 JPanel 我创建并尝试添加我的 JLabel JLabel mainTitle new JLabel SomeApp mainTitle setFont new Font
  • Laravel Blade 创建 url

    我有一个简单的问题 基本上我从数据库中获取网站的名称并根据其名称创建一个链接 看起来像 foreach websites as website a class websites href asset website gt name a en
  • 经过一段时间后一张一张地显示图像

    我是前端开发的新人 我面临的一个主要问题是我有 3 个图像相互放置 现在我想移动一个图像 以便另一个图像出现 然后它消失 第三个图像在经过一段时间后出现时间间隔 我希望在我的网站中的同一位置上放置三张图像 但只想在一段时间后一张接一张地查看
  • 如何在需要时获取 cordova 2.9 的电池电量?

    window addEventListener batterystatus onBatteryStatus false function onBatteryStatus info Handle the online event consol
  • Magento Rest API - oAuth 错误

    我是第一次使用 Magento Rest API 我浏览了 Rest API 的教程http www magentocommerce com api rest并尝试了一个通过 API 获取产品的示例 callbackUrl http loc
  • MSBuild 使用项目引用正确构建项目,但不是从解决方案构建项目

    当我构建一个包含 2 个项目 B csproj 和 C csproj 具有内部项目引用 的 A sln 时 它会在 MSBuild 中引发引用错误 但是当我在 MSBuild 中分别构建 B csproj 和 C csproj 时 它不会抛
  • 如何从另一个屏幕重置 Flutter 中的表单?

    如何重置 清除 flutter 应用程序中的表单字段 一旦数据提交到服务器 在我的应用程序中 我有 2 个页面 第一页输入表格详细信息 如姓名 地址等 第二页是上传图片 第一页将数据推送到第二页 这里我没有进行推送替换 意味着第二页位于第一
  • C# 创建具有所有可能组合的字符串

    所以我有一个需要字符串的方法 该字符串由一个常量值和 2 个布尔值 2 个常量整数和一个可以是 10 20 或 30 的整数组成 这都是一个字符串 其中参数由下划线分隔 Example string value horse string c