Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: Cách giải quyết lỗi "Specified cast is not valid" khi dùng KeyValuePair trong HashTable như thế nào ?

  1. #1
    Ngày gia nhập
    09 2011
    Bài viết
    7

    Mặc định Cách giải quyết lỗi "Specified cast is not valid" khi dùng KeyValuePair trong HashTable như thế nào ?

    Mình gặp vấn đề rắc rối khi làm việc với hashtable với value là kiểu dữ liệu phức tạp, khi mình dùng KeyValuePair để lấy value thông qua key thì nó báo lỗi "Specified cast is not valid"
    Mình có đính kèm code nhờ mọi người giúp đỡ, mình mới tập tành code c# nên còn gà
    Many thanks
    Attached Files Attached Files

  2. #2
    Ngày gia nhập
    09 2011
    Bài viết
    7

    Trích dẫn Nguyên bản được gửi bởi chick Xem bài viết
    Mình gặp vấn đề rắc rối khi làm việc với hashtable với value là kiểu dữ liệu phức tạp, khi mình dùng KeyValuePair để lấy value thông qua key thì nó báo lỗi "Specified cast is not valid"
    Mình có đính kèm code nhờ mọi người giúp đỡ, mình mới tập tành code c# nên còn gà
    Many thanks
    ai giúp mình với

  3. #3
    Ngày gia nhập
    09 2011
    Bài viết
    7

    Trích dẫn Nguyên bản được gửi bởi chick Xem bài viết
    Mình gặp vấn đề rắc rối khi làm việc với hashtable với value là kiểu dữ liệu phức tạp, khi mình dùng KeyValuePair để lấy value thông qua key thì nó báo lỗi "Specified cast is not valid"
    Mình có đính kèm code nhờ mọi người giúp đỡ, mình mới tập tành code c# nên còn gà
    Many thanks
    Help plz
    ----------------------

  4. #4
    Ngày gia nhập
    09 2011
    Nơi ở
    TP Hồ Chí Minh
    Bài viết
    37

    Sửa cái này:
    Visual C# Code:
    1. KeyValuePair<string,List<Dictionary<string, List<string>>>> kv =
    2. (KeyValuePair<string, List<Dictionary<string, List<string>>>>)htbl[search];
    Thành cái này:
    Visual C# Code:
    1. Dictionary<string, List<Dictionary<string, List<string>>>> kv =
    2. (Dictionary<string, List<Dictionary<string, List<string>>>>)htbl[search];
    Dòng 47 ép kiểu sai. Kiểu trong value trong hastable là kiểu Dictionary lại đi ép kiểu lung tung @@
    Nên coi lại cấu trúc dữ liệu của chương trình. Làm kiểu này hại não lắm.
    p/s: ta là gấu

  5. #5
    Ngày gia nhập
    09 2011
    Bài viết
    7

    Trích dẫn Nguyên bản được gửi bởi haiduong87 Xem bài viết
    Sửa cái này:
    Visual C# Code:
    1. KeyValuePair<string,List<Dictionary<string, List<string>>>> kv =
    2. (KeyValuePair<string, List<Dictionary<string, List<string>>>>)htbl[search];
    Thành cái này:
    Visual C# Code:
    1. Dictionary<string, List<Dictionary<string, List<string>>>> kv =
    2. (Dictionary<string, List<Dictionary<string, List<string>>>>)htbl[search];
    Dòng 47 ép kiểu sai. Kiểu trong value trong hastable là kiểu Dictionary lại đi ép kiểu lung tung @@
    Nên coi lại cấu trúc dữ liệu của chương trình. Làm kiểu này hại não lắm.
    hix thanks bạn đã reply, với cấu trúc dữ liệu của từ điển thế này:

    *Từ tiếng Anh
    - Từ loại 1:
    +Nghĩa tiếng Việt 1
    = VD...
    +Nghĩa tiếng Việt 2
    - Từ loại 2:
    +Nghĩa tiếng Việt 3
    = VD...
    +Nghĩa tiếng Việt 4
    thì mình nên lưu như thế nào cho đúng nhất hả bạn?

  6. #6
    Ngày gia nhập
    09 2011
    Bài viết
    7

    Mặc định Cách giải quyết lỗi "Specified cast is not valid" khi dùng KeyValuePair trong HashTable như thế nào ?

    ban đầu mình chỉ nghĩ như vậy:
    Visual C# Code:
    1.  Dictionary<string, List<string>>

    là có thể lưu 1 từ với các nghĩa của nó (List<string>)
    nhưng mà đọc các yêu cầu còn phân ra từ loại và vd nữa, 2 cái này mình ko biết phải lưu như thế nào nên nghĩ ra rắc rối như vậy. hix

  7. #7
    Ngày gia nhập
    09 2011
    Nơi ở
    TP Hồ Chí Minh
    Bài viết
    37

    Visual C# Code:
    1. public class DictionaryItem
    2. {
    3.      public string EnglishWord;
    4.      public List<VietNameseMeaning> VietNameseMeanings = new List<VietNameseMeaning>();
    5. }
    6. public class VietNameseMeaning
    7. {
    8.      public WordKind Kind;
    9.      public List<string> Meanings = new List<string>();
    10. }
    11. public enum WordKind
    12. {
    13.    DanhTu = 1,
    14.    DongTu = 2,
    15.    TinhTu = 3,
    16. }
    17.  
    18. {
    19.    HashTable hatxihoi = new HashTable();
    20.    public void Init()
    21.    {
    22.         DictionaryItem dicItem = new DictionaryItem();
    23.         dicItem.EnglishWord = "can";
    24.  
    25.         VietNameseMeaning vnMeaning1 = new VietNameseMeaning();
    26.         vnMeaning1.Kind = WordKind.DongTu;
    27.         vnMeaning1.Meanings.Add("Co the, Co kha nang");
    28.         vnMeaning1.Meanings.Add("Dong hop");
    29.  
    30.         VietNameseMeaning vnMeaning2 = new VietNameseMeaning();
    31.         vnMeaning2.Kind = WordKind.DanhTu;
    32.         vnMeaning2.Meanings.Add("Vo do hop");
    33.  
    34.         dicItem.VietNameseMeanings.Add(vnMeaning1);
    35.         dicItem.VietNameseMeanings.Add(vnMeaning2);
    36.  
    37.         hatxihoi.Add(dicItem.EnglishWord, dicItem);
    38.    }
    39. }
    chỉ mang giá trị tham khảo
    GL, HF
    p/s: ta là gấu

Các đề tài tương tự

  1. Linq bị lỗi "Specified cast is not valid" :(
    Gửi bởi tuanpv trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 21
    Bài viết cuối: 08-06-2013, 10:53 AM
  2. Store "Specified cast is not valid"
    Gửi bởi dangwru trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 04-01-2013, 07:28 PM
  3. Lỗi "Specified cast is not valid" khi dùng Thread
    Gửi bởi tanaka trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 14-08-2011, 03:34 PM
  4. ADO.NET Sửa lỗi "Specified cast is not valid." như thế nào?
    Gửi bởi r3z0lee trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 17-06-2011, 06:49 PM
  5. Đề xuất Thêm flag "Đã giải quyết" (Resolved) hay "chưa giải quyết" cho topic
    Gửi bởi cuonchagio trong diễn đàn Ý kiến, đề xuất và khiếu nại
    Trả lời: 3
    Bài viết cuối: 28-01-2010, 05:34 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn