2010-06-14 36 views

回答

12
List<string> ast = new List<string>(); 
     ast.Add("asdas!"); 
     Session["stringList"] = ast; 
     List<string> bst = (List<string>)Session["stringList"]; 
+0

是否有超過1個列表值的工作? – JoJo 2013-09-06 17:13:34

3

如果這是你要求的,你可以做這些事情。

Session["key"] = List<string>; 

以及

myStrings = (List<string>)Session["key"]; 
+1

Session [「key」] as List is better。並且記得在轉換前檢查它是否爲空。 – 2010-06-14 06:25:51

2

你可能想探索HttpSessionState類以下兩個擴展方法。

public static System.Nullable<T> GetValue<T>(this HttpSessionState session, string key) where T : struct, IConvertible 
    { 
     object value = session[key]; 
     if (value != null && value is T) 
     { 
      return (T)value; 
     } 
     else 
      return null; 
    } 


    public static T GetValue<T>(this HttpSessionState session, string key, T defaultValue) where T : class 
    { 
     object value = session[key] ?? defaultValue; 
     if (value != null && value is T) 
     { 
      return (T)value; 
     } 
     else 
      return default(T); 
    } 

前者用於值類型,後者用於引用類型。

的用法如下:

int? _customerId = Session.GetValue<int>("CustomerID"); 
    Customer _customer = Session.GetValue<Customer>("CurrentCustomer", null); 
0

是。

var myList=(List<String>)Session["toList"];