C#中怎样用list<vector3>给另一个同类型的list赋值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中怎样用list<vector3>给另一个同类型的list赋值相关的知识,希望对你有一定的参考价值。

比如
list<vector3> v1;
list<vector3>v2;//假设v2中存储有值
v1=v2;//这一句对还是下面循环对或者还有其他的办法
for(int c=0;c<v2.count;c++)

v1[c]=v2[c];



求解答

参考技术A v1=v2;
这一行运行之后,你的v1和v2指向的是同一对象,后面无论对v1还是v2处理都会影响对方,后面的那个for就毫无意义了。追问

v1=v2这样能把v2的值全部都复制到v1中吗
还是不用这个赋值语句用下面那个循环才能进行赋值呢

追答

说的不够清楚吗,那举个例子,比如说

List<int> a=null;
List<int> b=new List<int>();
b.Add(10);
b.Add(11);
//此时b中有两个元素10和11,a为空
a=b;
//此时ab是同一对象,都包含10和11
a[0]=20;
//此时ab都包含两个元素,20和11

本回答被提问者和网友采纳
参考技术B 遍历List中元素,然后将每次循环的值添加到v2中
list<vector3> mList = new list<vector3>();
list<vector3> v2= new list<vector3>();
foreach (vector3 s in mList )

v2.Add(s);
Console.WriteLine(s);

关于用C#对List<>中去除重复元素的问题!

class Program

static void Main(string[] args)

string basePath = @"D:\Doc\wordcount.mdb";
string connstr = "Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=" + basePath;
string sql = "select * from [wordcount]";

List<WordInfo> list = new List<WordInfo>();
using (OleDbConnection conn = new OleDbConnection(connstr))

try

OleDbCommand cmd = new OleDbCommand(sql, conn);
conn.Open();
OleDbDataReader reader = cmd.ExecuteReader();
while (reader.Read())

WordInfo tmp = new WordInfo();
tmp.word = reader.GetString(1);
tmp.flag = 0;
list.Add(tmp);

reader.Close();
conn.Close();

catch (Exception ex)

Console.WriteLine("异常:" + ex.Message);


Console.WriteLine(list.Count);


public struct WordInfo

public string word;
public int flag;

以上是我的部分代码,我想做的是,去除list中“word”字符串重复的结构体,请问代码该如何书写,我自己写的总是提示数组超出索引而报错,请各位大神指教,真的很急!

以下代码有点琐碎,不过很明了
List<WordInfo> list = new List<WordInfo>();
WordInfo temp;
for (int i = 0; i < 10; i++)

    temp = new WordInfo();
    temp.word = "word";
    temp.flag = i;
    list.Add(temp);

for (int i = 0; i < 10; i++)

    temp = new WordInfo();
    temp.word = "word1";
    temp.flag = i;
    list.Add(temp);

var aa = from ll in list where ll.word == "word" select ll;// Linq 查找出所有 WordInfo 的word的值为 “word" 的元素
if(aa.Count()>0)// 判断是否有 word 为 “word" 的元素

    var temp1 = aa.ToList()[0];// 保留一个 word的值为 “word" 的元素
    while (aa.Count()>0)
    
        list.Remove( aa.ToList()[0]);//移走所有 word的值为 “word" 的元素
    
    list.Add(temp1);// 再添加一个 word的值为 “word" 的元素

参考技术A 可以用list.Distinct(),去除重复元素

以上是关于C#中怎样用list<vector3>给另一个同类型的list赋值的主要内容,如果未能解决你的问题,请参考以下文章

C#中的List<类名> 怎么理解?如把Datarow dr[0]=List<类名> 这怎么理解?

C#中怎样将List&lt;自己定义&gt;转为Json格式 及相关函数-DataContractJsonSerializer

C#怎样定义返回值为List的方法

C# 集合及集合内排序 问题 速求

c#中泛型集合怎样写强制类弄转换

C#中怎样判断一个List对象中是不是存在和指定变量的值相等的元素