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

C#中无法编写访问其他脚本数组的for循环问题求助

问题:C#中遍历数组的for循环无法运行,List遍历正常

我在C#中编写for循环,遍历来自另一个脚本的List和数组。其中遍历List的循环可正常运行,但遍历数组的循环无法实现。

原脚本代码

public class SceneImages : ScriptableObject
{
    public List<SceneImage> artWork;
}

[Serializable]
public struct SceneImage
{
    public string[] sceneName;
    public Sprite loadingSprite;
}  

尝试的错误代码

for(int i=0; i < SceneImage.sceneName.Length; i++) { }

问题原因

你直接通过结构体类型SceneImage访问sceneName成员,这是错误的——sceneName是SceneImage的实例成员,必须通过具体的SceneImage对象才能访问,不能直接用类型名调用。

解决方法

你需要先遍历SceneImages实例中的artWork列表,拿到每个SceneImage实例后,再遍历它的sceneName数组。示例代码如下:

方式一:foreach遍历List + for循环遍历数组

// 假设你已经获取到了SceneImages的实例,比如命名为sceneImages
foreach (var sceneImage in sceneImages.artWork)
{
    for (int i = 0; i < sceneImage.sceneName.Length; i++)
    {
        // 这里编写你的业务逻辑,比如访问sceneImage.sceneName[i]
    }
}

方式二:嵌套for循环遍历

// 假设你已经获取到了SceneImages的实例,比如命名为sceneImages
for (int listIndex = 0; listIndex < sceneImages.artWork.Count; listIndex++)
{
    SceneImage currentSceneImage = sceneImages.artWork[listIndex];
    for (int arrayIndex = 0; arrayIndex < currentSceneImage.sceneName.Length; arrayIndex++)
    {
        // 处理currentSceneImage.sceneName[arrayIndex]
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 08:07:52