C#代码实现获取字符串数组中最长/最短长度

0 下载量 116 浏览量 更新于2024-08-31 收藏 432KB PDF 举报
"C# 实现获取字符串数组中元素最长或最短的长度" 在C#编程中,有时候我们需要找出字符串数组中的最长或最短字符串的长度。以下是一种实现方法: 首先,定义一个类`Class6`,该类包含两个属性:`ElementValue`存储字符串值,`ElementLength`返回字符串的长度。类的定义如下: ```csharp class Class6 { private string _ElementValue; public string ElementValue { get { return _ElementValue; } set { _ElementValue = value; } } public int ElementLength { get { return _ElementValue.Length; } } public Class6(string v) { _ElementValue = v; } } ``` 接着,创建一个`Class7`类,用于管理`Class6`对象并提供获取最大长度和最小长度的方法。`Class7`类中包含一个`Class6`对象的列表,并提供`Add`方法添加元素,以及`MaxLength`和`MinLength`方法来计算长度: ```csharp class Class7 { private List<Class6> Elements = new List<Class6>(); public void Add(Class6 c6) { Elements.Add(c6); } public int MaxLength() { int max = int.MinValue; foreach (Class6 c6 in Elements) { if (c6.ElementLength > max) { max = c6.ElementLength; } } return max; } public int MinLength() { int min = int.MaxValue; foreach (Class6 c6 in Elements) { if (c6.ElementLength < min) { min = c6.ElementLength; } } return min; } } ``` 在实际应用中,我们可能需要在控制台或其他环境中测试这些功能。例如,创建一个字符串数组,然后使用`Class7`对象来获取最长和最短的字符串长度: ```csharp string[] elements = { "adsf", "etwert", "asdfasd", "gs" }; Class7 stringArrayHelper = new Class7(); foreach (string s in elements) { stringArrayHelper.Add(new Class6(s)); } Console.WriteLine("最长字符串长度: " + stringArrayHelper.MaxLength()); Console.WriteLine("最短字符串长度: " + stringArrayHelper.MinLength()); ``` 然而,为了更好地封装代码,我们不应在客户端代码中直接操作`Class7`内部的`Elements`列表。因此,可以将添加元素和获取长度的过程封装在`Class7`内部,使其对外提供一个简洁的接口。这样,客户端只需要传入字符串数组,而无需关心内部实现细节。 ```csharp class Class7 { //... 其他代码保持不变 ... public void Initialize(string[] elements) { Elements.Clear(); foreach (string s in elements) { Elements.Add(new Class6(s)); } } public int GetMaxLength() { //... MaxLength 方法的实现 ... } public int GetMinLength() { //... MinLength 方法的实现 ... } } // 客户端代码示例 Class7 stringArrayHelper = new Class7(); stringArrayHelper.Initialize(elements); Console.WriteLine("最长字符串长度: " + stringArrayHelper.GetMaxLength()); Console.WriteLine("最短字符串长度: " + stringArrayHelper.GetMinLength()); ``` 通过这种方式,`Class7`更好地隐藏了内部实现,提高了代码的可维护性和可读性。在实际开发中,这种封装是非常重要的,因为它遵循了面向对象设计的原则,如信息隐藏和单一职责。