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
相关产品推荐
相关产品推荐

