| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5068 人关注过本帖
标题:用了list<> 的自定义结构,为什么不能赋值??
只看楼主 加入收藏
meisbrother
Rank: 2
等 级:论坛游民
帖 子:100
专家分:29
注 册:2007-5-11
结帖率:84.62%
收藏
 问题点数:0 回复次数:5 
用了list<> 的自定义结构,为什么不能赋值??
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication3
   
{
    struct info
    {
       public string  qq;
       public string tel;
       public info(string a, string b)
       {
           qq = a;
           tel = b;
       }
    }
    class Program
    {
        static void Main(string[] args)
        {


            info bb = new info("asdfasdf", "2224536");
            System.Console.WriteLine(bb.qq );
            System.Console.WriteLine(bb.tel);
            bb.qq = "dfhsdh";
            System.Console.WriteLine(bb.qq);

            List<info> cc = new List<info>();
         
            cc.Add(new info("bbbbb","342567"));
            System.Console.WriteLine(cc[0].qq );
            System.Console.WriteLine(cc.Count.ToString() + "个数");
            cc[0].tel = "97655678";


        }
    }
}

//
错误    2    无法修改“System.Collections.Generic.List<字符查找.px排序表格结构>.this[int]”的返回值,因为它不是变量    E:\字符查找-c#\字符查找\字符查找\Form1.cs    132    29    字符查找
搜索更多相关主题的帖子: 赋值 list 定义 结构 
2008-12-01 10:13
meisbrother
Rank: 2
等 级:论坛游民
帖 子:100
专家分:29
注 册:2007-5-11
收藏
得分:0 
我又实验了string的二维数组也不行
2008-12-01 10:15
乖老鼠
Rank: 5Rank: 5
来 自:四川省
等 级:职业侠客
威 望:2
帖 子:434
专家分:394
注 册:2008-9-8
收藏
得分:0 
C# 只有针对“对象”的引用,而没有 C++ 那样针对
值类型的引用。struct T 是值类型,所以你在索引 List<struct T> 元素的时候,
返回的只是元素的一个值拷贝。自然,你对这个拷贝的成员的修改不会影响到真
实的元素。幸运的是,C# 编译器禁止这种操作。

[[it] 本帖最后由 乖老鼠 于 2008-12-1 11:39 编辑 [/it]]

转眼就从编程菜鸟混成了半灌水
2008-12-01 11:34
meisbrother
Rank: 2
等 级:论坛游民
帖 子:100
专家分:29
注 册:2007-5-11
收藏
得分:0 
问题已解决;
            cc.Add(new info("bbbbb","342567"));   
            var dd = cc[0];//把一个list值赋给一个对象变量,
            dd.qq = "9879";//对新的对象变量赋值
            cc[0] = dd;//把新对象在赋值回这个list
            System.Console.WriteLine(cc[0].qq);

            System.Console.WriteLine(cc[0].tel);



总结是虽然能实现功能,但在一个超过100000的记录时会很慢。
2008-12-01 17:21
乖老鼠
Rank: 5Rank: 5
来 自:四川省
等 级:职业侠客
威 望:2
帖 子:434
专家分:394
注 册:2008-9-8
收藏
得分:0 
LZ用的什么高级版本,居然开始支持var

转眼就从编程菜鸟混成了半灌水
2008-12-01 17:28
meisbrother
Rank: 2
等 级:论坛游民
帖 子:100
专家分:29
注 册:2007-5-11
收藏
得分:0 
c# 2008
2008-12-01 18:44
快速回复:用了list<> 的自定义结构,为什么不能赋值??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026891 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved