我有这个网络方法。

   [WebMethod]
    public List<BlogCultureInfo> loadCultureList()
    {
        List<Language> lstAllCultures = LocaleController.GetCultures();//Its bring a value from cultureInfo
        List<SCultureInfo> lstCulture = new List<SCultureInfo>();
        SCultureInfo objInfo = new SCultureInfo();
        foreach (Language objLst in lstAllCultures)
        {

            objInfo.LanguageName = objLst.LanguageName;
            objInfo.LanguageCode = objLst.LanguageCode;

            lstCulture.Add(objInfo);
        }
        return lstCulture;

    }


它的运行没有任何错误。当我在lstAllCultures中调试时,它带来了正确的值.210个不同的cultureinfo值。

我做错了。谢谢。

最佳答案

您需要在循环内部而不是外部创建新对象(SCultureInfo)。

foreach (Language objLst in lstAllCultures)
        {
            SCultureInfo objInfo = new SCultureInfo();
            objInfo.LanguageName = objLst.LanguageName;
            objInfo.LanguageCode = objLst.LanguageCode;
            lstCulture.Add(objInfo);
        }


在您的原始代码中,您只有一个对象,该对象被多次添加到列表中并保存在foreach循环的最后一次迭代中分配的值。

10-07 21:01