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# 创建具有所有可能组合的字符串 的相关文章

  • 添加 Nullable int 时保持 null?

    我想添加可为空的int 并保留null当所有值都是null 我想要这个结果 1 2 3 1 null 1 null null null O null 0 问题是 如果我将一个值与 null 相加 结果为 null int i1 1 int
  • json.net自定义jobject反序列化

    我正在尝试使用 JsonConvert DeserializeObject string 将字符串反序列化为可与动态一起使用的 jobject 来动态访问 json 文档 但是我想避免知道文档的大小写 以便我可以输入 dynamic doc
  • 您可以从基本 Win32 控制台模板应用程序中的 C#/Winrt 组件调用(不是 WinForm/abstractions/wrappers 或使用 C++/Winrt 模板)吗?)

    我有一个现有的程序 win32 x86 控制台应用程序 需要调用托管代码 来自 Net 的 C dll The dll不暴露给 COM 但可以从 C WinRT 组件调用并由 C WinRT 控制台模板应用引用 BUT即使安装了 C Win
  • Poco c++Net:Http 从响应中获取标头

    我使用 POCO C Net 库进行 http 我想尝试制定持久缓存策略 首先 我认为我需要从缓存标头中获取过期时间 并与缓存值进行交叉检查 如果我错了 请告诉我 那么我如何从中提取缓存头httpResponse 我已经看到你可以用 Jav
  • 将完整模板参数值映射到原始类型

    我想将数字映射到类型 在这个例子中 我将创建一个函数 将 sizeof 结果映射到有符号的原始类型 我想知道是否有更好的方法来完成我在现代 C 中所做的事情 即采用模板化值并将其转换为类型 现在 这可以将大小转换为已知类型 但我似乎无法在标
  • 在开关中使用“goto”?

    我看到了一个建议的编码标准 内容如下Never use goto unless in a switch statement fall through 我不跟 这个 例外 案例到底是什么样的 这证明了goto 此构造在 C 中是非法的 swi
  • C# 5 async/await 线程机制感觉不对?

    为什么让调用线程进入异步方法直到内部 等待 一旦调用异步方法就生成一个线程 这不是更干净吗 这样您就可以确定异步方法会立即返回 您不必担心在异步方法的早期阶段没有做任何昂贵的事情 我倾向于知道某个方法是否要在 我的 线程上执行代码 不管是堵
  • 在 omp 并行 for 循环中使用 unique_ptr 会导致 SEG.FAULT

    采取以下代码 include
  • 将表(行)与 OpenXML SDK 2.5 保持在一起

    我想在 Word 文档中生成多个表 每行 2 行 但我想将这两行保留在一起 如果可能的话 new KeepNext 第一行不起作用 new KeepNext 第一行的最后一段不起作用 new CantSplit 放在桌子上不起作用 在所有情
  • 访问 ascx 文件中的母版页控件

    我有一个母版页文件 其中包含 2 个面板控件中的 2 个菜单 我还使用控件来检查用户是否登录并获取用户类型 根据我想要显示 隐藏面板的类型 控件本身不在母版页中引用 而是通过 CMS 系统动态引用 我想在用户控件中使用findcontrol
  • MFC:如何设置CEdit框的焦点?

    我正在开发我的第一个简单的 MFC 项目 但我正在努力解决一个问题 想要设置所有的焦点CEdit其中一个对话框中的框 我的想法是 当打开对话框时 焦点位于第一个编辑框上 然后使用 选项卡 在它们之间交换 我看到了方法SetFocus 但我无
  • UI 函数在快速事件完成之前触发

    我有一个停靠在 Silverlight 应用程序中的 Web 浏览器框架 有时会在其上弹出全窗口 XAML Silverlight UI 元素 我已经或多或少修复了一个老问题 即 Web 框架的内容似乎与 Silverlight 内容不能很
  • 如何对 NServiceBus.Configure.WithWeb() 进行单元测试?

    我正在构建一个 WCF 服务 该服务接收外部 IP 上的请求并将其转换为通过 NServiceBus 发送的消息 我的单元测试之一调用Global Application Start 它执行应用程序的配置 然后尝试将 Web 服务解析为 验
  • 析构函数中的异步操作

    尝试在类析构函数中运行异步操作失败 这是代码 public class Executor public static void Main var c1 new Class1 c1 DoSomething public class Class
  • 在 asp.net MVC 中使用活动目录进行身份验证

    我想使用活动目录对我的 asp net mvc 项目中的用户进行身份验证 在网上冲浪了几个小时后 我没有找到任何对我有用的东西 我已经看到了所有结果 但什么也没有 我尝试按照许多帖子的建议编辑我的 web config 如果有人可以帮助我提
  • 从BackgroundWorker线程更新图像UI属性

    在我正在编写的 WPF 应用程序中 我有一个 TransformedBitmap 属性 该属性绑定到 UI 上的 Image 对象 每当我更改此属性时 图像就会更新 因此显示在屏幕上的图像也会更新 为了防止在检索下一张图像时 UI 冻结或变
  • Project Euler #8,我不明白我哪里出了问题[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我正在做项目欧拉第八题 https projecteuler net problem 8 其中我得到了这个大得离谱的数字 7316
  • Linux mremap 不释放旧映射?

    我需要一种方法将页面从一个虚拟地址范围复制到另一个虚拟地址范围 而无需实际复制数据 范围很大 延迟很重要 mremap 可以做到这一点 但问题是它也会删除旧的映射 由于我需要在多线程环境中执行此操作 因此我需要旧映射能够同时使用 因此稍后当
  • .NET 4 的条件编译[重复]

    这个问题在这里已经有答案了 可能的重复 条件编译和框架目标 https stackoverflow com questions 2923210 c sharp conditional compilation and framework ta
  • CUDA 8 编译错误 -std=gnu++11

    我正在尝试转换一些代码以使用 CUDA 并且我认为我遇到了兼容性问题 我们使用CMake 这些是我使用的 gcc 和 CUDA 版本 gcc version gcc Ubuntu 5 4 0 6ubuntu1 16 04 5 5 4 0 2

随机推荐

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

    我正在尝试实现类似 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