You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将指定控制台输出保存以更新C#程序中的dnaInput字符串?

解决方案

方案1:直接赋值(最简单,匹配需求)

如果目标输出内容是固定字符串,直接将内容赋值给dnaInput即可,无需绕文件操作:

public static void SecondCodon()
{
    string targetContent = "save this to the string -> dnaInput";
    Console.Write(targetContent);
    // 直接将目标内容赋值给全局变量
    dnaInput = targetContent;
}

执行选项2后回到主菜单,就能看到dnaInput已更新为目标文本。

方案2:捕获动态生成的控制台输出

如果目标内容是动态生成的(非固定字符串),可以用StringWriter临时重定向控制台输出,捕获指定内容后恢复原输出流:

public static void SecondCodon()
{
    // 保存原始控制台输出流
    var originalConsoleOut = Console.Out;
    
    using (var stringWriter = new StringWriter())
    {
        // 临时将控制台输出重定向到StringWriter
        Console.SetOut(stringWriter);
        
        // 输出目标内容(此处可替换为动态生成的逻辑)
        Console.Write("save this to the string -> dnaInput");
        
        // 从StringWriter提取输出内容,赋值给dnaInput
        dnaInput = stringWriter.ToString();
        
        // 恢复原始控制台输出流
        Console.SetOut(originalConsoleOut);
    }
    
    // 可选:将更新后的内容输出到控制台,让用户确认
    Console.WriteLine($"\n已更新DNA链:{dnaInput}");
}

该方法仅捕获SecondCodon内的特定输出,不会影响主菜单的其他控制台内容。

原方法问题分析

你之前的StreamWriter代码将整个控制台的输出重定向到文件,导致主菜单等无关内容也被写入文件,不符合“仅捕获特定内容”的需求。如果只是要将内容存入变量,用StringWriter即可,完全不需要写入本地文件。


内容的提问来源于stack exchange,提问作者southstarangel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 00:42:00