none
請問..select new { val4.Name, val4.Age, NameLen = val4.Name.Length } 如何改?? RRS feed

  • 問題

  • dear all

    程式如下:


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace UseQueryExpression
    {
        /// <summary>
        /// 學生成績
        /// </summary>
        class LessonScore
        {
            /// <summary>
            /// 創建成績單,傳入課程名,分數
            /// </summary>
            public LessonScore(string les, float scr)
            {
                this._Lesson = les;
                this._Score = scr;
            }
            private float _Score;
            /// <summary>
            /// 課程成績
            /// </summary>
            public float Score
            {
                get
                {
                    return this._Score;
                }
            }
            public string _Lesson;
            /// <summary>
            /// 課程名稱
            /// </summary>
            public string Lesson
            {
                get
                {
                    return this._Lesson;
                }
            }
    public override string ToString( )
    {
    string str;
    str = string.Format("{0}---{1}分", this._Lesson, this._Score);
    return str;
    }
        }
        class Student
        {
            
            /// <summary>
            /// 學生姓名
            /// </summary>
            private string _Name;
            public string Name
            {
                get
                {
                    return this._Name;
                }
            }

            /// <summary>
            /// 學生性别,男或女
            /// </summary>
            private string _XingBie;
            public string XingBie
            {
                get
                {
                    return this._XingBie;
                }
            }

            private uint _Age;
            /// <summary>
            /// 學生年齡
            /// </summary>
            public uint Age
            {
                get
                {
                    return this._Age;
                }
            }

            private List<LessonScore> _Scores;
            /// <summary>
            /// 成績單
            /// </summary>
            public List<LessonScore> Scores
            {
                get
                {
                    return this._Scores;
                }
            }

            /// <summary>
            /// 構造函數,傳入姓名,年齡,性别,成績單。
            /// </summary>
            public Student(string name, string xb, uint age, List<LessonScore> scrs)
            {
                this._Age = age;
                this._Name = name;
                this._XingBie = xb;
                this._Scores = scrs;
            }

            /// <summary>
            /// 構造函數,傳入姓名,年齡,性别。
            /// </summary>
            public Student(string name, string xb, uint age)
            {
                this._Age = age;
                this._Name = name;
                this._XingBie = xb;
                this._Scores = null;
            }

            /// <summary>
            /// 重寫ToString(),獲取學生的文本形式
            /// </summary>
            public override string ToString( )
            {
                string str;
                str = string.Format("{0}-{1}-{2}", 
                    this._Name, this._Age, this._XingBie);
                return str;
            }
        }
        
        class Program
        {
            static void Main(string[] args)
            {
                UseSimpleSelect();
            }

            static void UseSimpleSelect( )
            {
                Student[] stAry = 
                    {
                        new Student("張三", "男", 20),
                        new Student("歐陽權宜", "男", 22),
                        new Student("李霞紅", "女", 23),
                        new Student("王碼碼", "男", 21),
                        new Student("王丹", "女", 18),
                    };

                var query4 =
                    from val4 in stAry
                    select new { val4.Name, val4.Age, NameLen = val4.Name.Length };
                //打印查詢query4的元素
                foreach (var item in query4)
                {
                    System.Console.WriteLine(item);
                }
                System.Console.ReadLine();
            } 
        }
    }

    結果
    { Name = 張三, Age = 20, NameLen = 2 }
    { Name = 歐陽權宜, Age = 22, NameLen = 4 }
    { Name = 李霞紅, Age = 23, NameLen = 3 }
    { Name = 王碼碼, Age = 21, NameLen = 3 }
    { Name = 王丹, Age = 18, NameLen = 2 }

    不解的是找不到 Name = 跟 Age =
    如果想改成 姓名 = 跟 年齡 = ,要如何改??
    謝謝!!

    2018年1月27日 上午 01:45

解答

  •  var query4 =
                    from val4 in stAry
                    select new { 
           姓名 = val4.Name, 
           年齡 = val4.Age, 
           NameLen = val4.Name.Length };

    如果你沒有給屬性欄位,他預設就用原本的。(例如:val4.Name 就是 Name)

    2018年1月27日 上午 02:11

所有回覆

  •  var query4 =
                    from val4 in stAry
                    select new { 
           姓名 = val4.Name, 
           年齡 = val4.Age, 
           NameLen = val4.Name.Length };

    如果你沒有給屬性欄位,他預設就用原本的。(例如:val4.Name 就是 Name)

    2018年1月27日 上午 02:11
  • 衷心建議不要使用中文來命名...

    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2018年1月29日 上午 12:57
    版主