【发布时间】:2017-05-06 04:04:42
【问题描述】:
private XElement AuthorSeparate(List<string> authorName)
{
string surName = string.Empty;
string initalName = string.Empty;
string givenName = string.Empty;
int j = 1;
for (int i = 0; i < authorName.Count; i++)
{
XElement Author = new XElement("author");
Author.Add(new XAttribute("Seq", j));
else
{
char[] initalArray = splitedName[0].ToCharArray();
initalName = initalArray[0] + '.'.ToString();
surName = splitedName.LastOrDefault();
splitedName = splitedName.Reverse().Skip(1).Reverse().ToArray();
givenName = string.Join(" ", splitedName);
}
if (!string.IsNullOrEmpty(initalName))
{
XElement InitalElement = new XElement("initials", initalName);
Author.Add(InitalElement);
}
if (!string.IsNullOrEmpty(surName))
{
XElement SurnameElement = new XElement("surname", surName);
Author.Add(SurnameElement);
}
if (!string.IsNullOrEmpty(givenName))
{
XElement GivenNameElement = new XElement("given-name", givenName);
Author.Add(GivenNameElement);
}
}
return Author;
}
这是我的方法.. 形成这个方法我需要返回 xelement。在这个方法中,我在 for 循环中声明了 xelement。在 for 循环完成后,我需要返回名为 author 的 xelement。如何返回那个xelement?
【问题讨论】:
-
您需要在循环外声明
Author。将XElement Author = new XElement("author");放在 for 循环之前。 -
但我不会每次都创建
-
因此,如果您的循环有 10 次迭代,它将创建 10 个 Author 对象,您要返回哪一个?
-
你打算做什么?根据您的描述,您希望每次通过循环创建一个新作者,但是您只想在函数结束时返回其中一个作者?这似乎是你所要求的,但我怀疑那是你真正想要的。你想做什么?
-
是否因为某种原因出现错误?你知道这是 C#,对吧?大多数对象/实例实际上都是引用。因此,您应该能够返回在循环中声明的变量。在循环内的任何时候,您只需“返回”它即可。运行时执行引用计数和垃圾收集。