C# 仅显示项时将字符串列表转换为字符串

C# 仅显示项时将字符串列表转换为字符串,c#,string,C#,String,我有一个返回字符串列表的函数: string displayText; List<string> list = new List<string>(); list = GetListOfStrings(); if(list.Count > 1) { displayText = string.Join("\r", list.ToArray()); } else { displayText = list.ToString(); } 字符串显示文本; 列表

我有一个返回字符串列表的函数:

string displayText;
List<string> list = new List<string>();
list = GetListOfStrings();
if(list.Count > 1)
{
    displayText = string.Join("\r", list.ToArray());
}
else
{
    displayText = list.ToString();
}
字符串显示文本;
列表=新列表();
list=GetListOfStrings();
如果(list.Count>1)
{
displayText=string.Join(“\r”,list.ToArray());
}
其他的
{
displayText=list.ToString();
}
如果列表中有多个字符串,则为了显示目的,\r我将它们分开,如果只有一个字符串,则无法将其转换为字符串

但是当只有一个字符串时,上面显示的是“System.Collections.Generic.List1[System.String]”


当列表中只有一个字符串时,最好的方法是什么?

没有理由在列表中使用
ToString
——只需抓取第一个(也是唯一的)项:


注释中的两个答案似乎都是正确的,尽管
字符串上的
ToString
有点多余。我认为“删除if”实际上是最好的答案。

没有理由在列表中使用
ToString
——只需抓取第一项(也是唯一一项):


注释中的两个答案似乎都是正确的,尽管
字符串上的
ToString
有点多余。我认为“删除if”实际上是最好的答案。

使用SingleOrDefault()获取列表中的唯一项

if(list.Count > 1)
{
    displayText = string.Join("\r", list.ToArray());
}
else
{
    displayText = list.SingleOrDefault();
}

使用SingleOrDefault()获取列表中的唯一项

if(list.Count > 1)
{
    displayText = string.Join("\r", list.ToArray());
}
else
{
    displayText = list.SingleOrDefault();
}

没有多个项目并不意味着它有一个项目。 您可以使用:

string displayText;
List<string> list = new List<string>();
list = GetListOfStrings();
displayText = string.Join("\r", list);
字符串显示文本;
列表=新列表();
list=GetListOfStrings();
displayText=string.Join(“\r”,列表);

没有多个项目并不意味着它有一个项目。 您可以使用:

string displayText;
List<string> list = new List<string>();
list = GetListOfStrings();
displayText = string.Join("\r", list);
字符串显示文本;
列表=新列表();
list=GetListOfStrings();
displayText=string.Join(“\r”,列表);

只需使用
string.Join(“\r”,list)
它将处理列表仅包含一项的情况
var displayText=string.Join(“\r”,GetListOfStrings())-11行减至1行,更有效的TTOSTRING()方法不会被List覆盖,因此通过使用
List.ToString()
您将获得object.ToString()实现,正如您所见,它返回类型的全名。只需使用
string.Join(“\r”,List)
它将处理列表仅包含一项的情况
var displayText=string.Join(“\r”,GetListOfStrings())-11行减至1行,更有效的TTOString()方法不会被列表覆盖,因此通过使用
List.ToString()
您将获得object.ToString()实现,正如您所见,它返回类型的全名。(需要分配
displayText
,不需要
新列表()
,不需要
ToArray()
)(需要分配
displayText
,不需要
新列表()
,也不需要
ToArray()
)添加命名空间系统。LINQ确保您不是说
FirstOrDefault
?FirstOrDefault返回列表的第一个元素。在这种情况下也可以使用它。但对于返回单个项,使用SingleOrDefault()。这两种方法都可以很好地工作添加命名空间System.LinqSure您不是说
FirstOrDefault
?FirstOrDefault返回列表的第一个元素。在这种情况下也可以使用它。但对于返回单个项,使用SingleOrDefault()。两者都可以很好地工作