修剪清单(C#)

时间:2014-11-15 17:08:03

标签: c# unity3d

我正在使用动态列表(B)中的字符串动态生成字符串列表,填充列表(A),但我似乎无法修剪列表。 *即,如果String" bob"从列表(B)中删除,列表(A)不删除字符串" bob"。

using System.Collections.Generic;

void MyMethod(){
    if (PhotonNetwork.GetRoomList ().Length == 0){
        print ("No Rooms to Display");
    }else{
        foreach (RoomInfo roomInfo in PhotonNetwork.GetRoomList ()){
            if(!CompleteRoomList.Contains(roomInfo.name)){
            CompleteRoomList.Add (roomInfo.name);
            }else{
             //Prune CompleteRoomList to match roominfo.name
            CompleteRoomList.Remove (roomInfo.name);
         }
      }
   }
}

1 个答案:

答案 0 :(得分:0)

基本上,列表B应该是对列表A的引用,正确吗?在那种情况下

listB = listA;

会这样做。

示例:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class ListTest : MonoBehaviour
{
    List<string> listA = new List<string>();
    List<string> listB;

    void Start()
    {
        listA.Add("a");
        listA.Add("b");

        listB = listA;

        listB.Add("c");
        listB.Remove("a");

        listA.Add("d");

        Debug.Log("List A:");
        foreach(string item in listA)
            Debug.Log(item);

        Debug.Log("List B:");
        foreach(string item in listB)
            Debug.Log(item);
    }
}

输出将是:

List A:
b
c
d
List B:
b
c
d