System::Collections::Specialized::StringCollection Class Reference

Inherits System::Collections::Generic::IEnumerable< System::String >.

Classes

class  Enumerator
 Enumerator type to iterate through string collection. More...
 

Public Types

typedef std::vector< System::String >::iterator iterator
 Iterator type. More...
 
typedef std::vector< System::String >::const_iterator const_iterator
 Const iterator type. More...
 
typedef std::vector< System::String >::reverse_iterator reverse_iterator
 Reverse iterator type. More...
 
typedef std::vector< System::String >::const_reverse_iterator const_reverse_iterator
 Const reverse iterator type. More...
 
- Public Types inherited from System::Collections::Generic::IEnumerable< System::String >
typedef IEnumerator< System::StringIEnumeratorType
 Enumerator type. More...
 
using ValueType = System::String
 
using iterator = System::Details::VirtualizedIterator< System::String >
 Iterator type. More...
 
using const_iterator = System::Details::VirtualizedConstIterator< System::String >
 Const iterator type. More...
 
using virtualized_iterator = System::Details::VirtualizedIteratorBase< System::String >
 Inner iterator base type. More...
 
using virtualized_iterator_element = System::String
 Inner iterator element type. More...
 
- Public Types inherited from System::Object
typedef SmartPtr< Objectptr
 Alias for smart pointer type. More...
 

Public Member Functions

ASPOSECPP_SHARED_API StringCollection ()
 Constructs empty string collection. More...
 
SharedPtr< Generic::IEnumerator< System::String > > GetEnumerator () override
 
ASPOSECPP_SHARED_API int get_Count () const
 
ASPOSECPP_SHARED_API System::Stringoperator[] (int index)
 
ASPOSECPP_SHARED_API System::String idx_get (int index) const
 
ASPOSECPP_SHARED_API void idx_set (int index, const System::String &value)
 
ASPOSECPP_SHARED_API int Add (const System::String &value)
 
ASPOSECPP_SHARED_API void AddRange (const ArrayPtr< System::String > &range)
 
ASPOSECPP_SHARED_API void CopyTo (const ArrayPtr< System::String > &arr, const int32_t index) const
 
ASPOSECPP_SHARED_API void Clear ()
 Deletes all elements. More...
 
ASPOSECPP_SHARED_API bool Contains (const System::String &value) const
 
ASPOSECPP_SHARED_API int IndexOf (const System::String &value) const
 
ASPOSECPP_SHARED_API void Insert (int index, const System::String &value)
 
ASPOSECPP_SHARED_API void Remove (const System::String &value)
 
ASPOSECPP_SHARED_API void RemoveAt (int index)
 
ASPOSECPP_SHARED_API std::vector< System::String > & data ()
 
ASPOSECPP_SHARED_API const std::vector< System::String > & data () const
 
ASPOSECPP_SHARED_API iterator begin () noexcept
 
ASPOSECPP_SHARED_API const_iterator begin () const noexcept
 
ASPOSECPP_SHARED_API const_iterator cbegin () const noexcept
 
ASPOSECPP_SHARED_API iterator end () noexcept
 
ASPOSECPP_SHARED_API const_iterator end () const noexcept
 
ASPOSECPP_SHARED_API const_iterator cend () const noexcept
 
ASPOSECPP_SHARED_API reverse_iterator rbegin () noexcept
 
ASPOSECPP_SHARED_API const_reverse_iterator rbegin () const noexcept
 
ASPOSECPP_SHARED_API const_reverse_iterator crbegin () const noexcept
 
ASPOSECPP_SHARED_API reverse_iterator rend () noexcept
 
ASPOSECPP_SHARED_API const_reverse_iterator rend () const noexcept
 
ASPOSECPP_SHARED_API const_reverse_iterator crend () const noexcept
 
ASPOSECPP_SHARED_API System::Details::VirtualizedIteratorBase< System::String > * virtualizeBeginIterator () override
 
ASPOSECPP_SHARED_API System::Details::VirtualizedIteratorBase< System::String > * virtualizeEndIterator () override
 
ASPOSECPP_SHARED_API System::Details::VirtualizedIteratorBase< System::String > * virtualizeBeginConstIterator () const override
 
ASPOSECPP_SHARED_API System::Details::VirtualizedIteratorBase< System::String > * virtualizeEndConstIterator () const override
 
- Public Member Functions inherited from System::Collections::Generic::IEnumerable< System::String >
System::String LINQ_ElementAt (int index)
 
System::String LINQ_First ()
 
System::String LINQ_First (const Func< System::String, bool > &predicate)
 
System::String LINQ_FirstOrDefault ()
 
System::String LINQ_FirstOrDefault (std::function< bool(System::String)> predicate)
 
System::String LINQ_Last ()
 
System::String LINQ_LastOrDefault ()
 
SharedPtr< List< System::String > > LINQ_ToList ()
 
int LINQ_Count ()
 
int LINQ_Count (const Func< System::String, bool > &predicate)
 
System::ArrayPtr< System::StringLINQ_ToArray ()
 
bool LINQ_All (std::function< bool(System::String)> predicate)
 
bool LINQ_Any ()
 
bool LINQ_Any (std::function< bool(System::String)> predicate)
 
SharedPtr< IEnumerable< System::String > > LINQ_Where (std::function< bool(System::String)> predicate)
 
bool LINQ_Contains (System::String value)
 
SharedPtr< IEnumerable< ResultType > > LINQ_Cast ()
 
SharedPtr< IEnumerable< Result > > LINQ_Cast ()
 
SharedPtr< IEnumerable< System::String > > LINQ_OrderBy (const Func< System::String, Key > &keySelector)
 
SharedPtr< IEnumerable< Source > > LINQ_OrderBy (const Func< Source, Key > &keySelector)
 
SharedPtr< IEnumerable< System::String > > LINQ_OrderByDescending (const Func< System::String, Key > &keySelector)
 
SharedPtr< IEnumerable< Source > > LINQ_OrderByDescending (const Func< Source, Key > &keySelector)
 
SharedPtr< IEnumerable< ResultType > > LINQ_OfType ()
 
SharedPtr< IEnumerable< Result > > LINQ_OfType ()
 
SharedPtr< IEnumerable< ResultType > > LINQ_Select (const Func< System::String, ResultType > &selector)
 
SharedPtr< IEnumerable< ResultType > > LINQ_Select (const Func< System::String, int32_t, ResultType > &selector)
 
SharedPtr< IEnumerable< Result > > LINQ_Select (const Func< Source, Result > &selector)
 
SharedPtr< IEnumerable< Result > > LINQ_Select (const Func< Source, int32_t, Result > &selector)
 
SharedPtr< IEnumerable< System::String > > LINQ_Concat (SharedPtr< IEnumerable< System::String >> sequence)
 
System::SharedPtr< IEnumerable< System::SharedPtr< System::Linq::IGrouping< Key, System::String > > > > LINQ_GroupBy (System::Func< System::String, Key > keyPredicate)
 
SharedPtr< IEnumerable< SharedPtr< System::Linq::IGrouping< Key, Source > > > > LINQ_GroupBy (System::Func< Source, Key > keyPredicate)
 
SharedPtr< IEnumerable< ResultType > > LINQ_SelectMany (const Func< System::String, SharedPtr< IEnumerable< ResultType >>> &selector)
 
SharedPtr< IEnumerable< Result > > LINQ_SelectMany (const Func< Source, SharedPtr< IEnumerable< Result >>> &selector)
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
const_iterator cbegin () const
 
const_iterator cend () const
 
- Public Member Functions inherited from System::Object
ASPOSECPP_SHARED_API Object ()
 Creates object. Initializes all internal data structures. More...
 
virtual ASPOSECPP_SHARED_API ~Object ()
 Destroys object. Frees all internal data structures. More...
 
ASPOSECPP_SHARED_API Object (Object const &x)
 Copy constructor. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More...
 
Objectoperator= (Object const &x)
 Assignment operator. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More...
 
ObjectSharedRefAdded ()
 Increments shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
int SharedRefRemovedSafe ()
 Decrements and returns shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
int RemovedSharedRefs (int count)
 Decreases shared reference count by specified value. More...
 
Detail::SmartPtrCounter * WeakRefAdded ()
 Increments weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
void WeakRefRemoved ()
 Decrements weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
Detail::SmartPtrCounter * GetCounter ()
 Gets reference counter data structure associated with the object. More...
 
int SharedCount () const
 Gets current value of shared reference counter. More...
 
ASPOSECPP_SHARED_API void Lock ()
 Implements C# lock() statement locking. Call directly or use LockContext sentry object. More...
 
ASPOSECPP_SHARED_API void Unlock ()
 Implements C# lock() statement unlocking. Call directly or use LockContext sentry object. More...
 
virtual ASPOSECPP_SHARED_API bool Equals (ptr obj)
 Compares objects using C# Object.Equals semantics. More...
 
virtual ASPOSECPP_SHARED_API int32_t GetHashCode () const
 Analog of C# Object.GetHashCode() method. Enables hashing of custom objects. More...
 
virtual ASPOSECPP_SHARED_API String ToString () const
 Analog of C# Object.ToString() method. Enables converting custom objects to string. More...
 
virtual ASPOSECPP_SHARED_API ptr MemberwiseClone () const
 Analog of C# Object.MemberwiseClone() method. Enables cloning custom types. More...
 
virtual ASPOSECPP_SHARED_API const TypeInfoGetType () const
 Gets actual type of object. Analog of C# System.Object.GetType() call. More...
 
virtual ASPOSECPP_SHARED_API bool Is (const TypeInfo &targetType) const
 Check if object represents an instance of type described by targetType. Analog of C# 'is' operator. More...
 
virtual ASPOSECPP_SHARED_API void SetTemplateWeakPtr (uint32_t argument)
 Set n'th template argument a weak pointer (rather than shared). Allows switching pointers in containers to weak mode. More...
 
virtual ASPOSECPP_SHARED_API bool FastCast (const Details::FastRttiBase &helper, void **out_ptr) const
 For internal purposes only. More...
 
template<>
bool Equals (float const &objA, float const &objB)
 
template<>
bool Equals (double const &objA, double const &objB)
 
template<>
bool ReferenceEquals (String const &str, std::nullptr_t)
 
template<>
bool ReferenceEquals (String const &str1, String const &str2)
 

Protected Member Functions

ASPOSECPP_SHARED_API ~StringCollection () override
 Destructor. More...
 
- Protected Member Functions inherited from System::Collections::Generic::IEnumerable< System::String >
 ~IEnumerable () override
 Destructor. More...
 
virtualized_iteratorGetEnumeratorAsVirtualizedIterator ()
 
virtualized_iteratorGetEnumeratorAsVirtualizedIterator () const
 

Protected Attributes

std::vector< System::Stringm_data
 Internal data structure. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from System::Object
static bool ReferenceEquals (ptr const &objA, ptr const &objB)
 Compares objects by reference. More...
 
template<typename T >
static std::enable_if<!IsSmartPtr< T >::value, bool >::type ReferenceEquals (T const &objA, T const &objB)
 Compares objects by reference. More...
 
template<typename T >
static std::enable_if<!IsSmartPtr< T >::value, bool >::type ReferenceEquals (T const &objA, std::nullptr_t)
 Reference-compares value type object with nullptr. More...
 
template<typename T1 , typename T2 >
static std::enable_if< IsSmartPtr< T1 >::value &&IsSmartPtr< T2 >::value, bool >::type Equals (T1 const &objA, T2 const &objB)
 Compares reference type objects in C# style. More...
 
template<typename T1 , typename T2 >
static std::enable_if<!IsSmartPtr< T1 >::value &&!IsSmartPtr< T2 >::value, bool >::type Equals (T1 const &objA, T2 const &objB)
 Compares value type objects in C# style. More...
 
static const TypeInfoType ()
 Implements C# typeof(System.Object) construct. More...
 

Detailed Description

Indexed list of strings. Objects of this class should only be allocated using System::MakeObject() function. Never create instance of this type on stack or using operator new, as it will result in runtime errors and/or assertion faults. Always wrap this class into System::SmartPtr pointer and use this pointer to pass it to functions as argument.

Member Typedef Documentation

◆ const_iterator

◆ const_reverse_iterator

◆ iterator

◆ reverse_iterator

Constructor & Destructor Documentation

◆ StringCollection()

ASPOSECPP_SHARED_API System::Collections::Specialized::StringCollection::StringCollection ( )

Constructs empty string collection.

◆ ~StringCollection()

ASPOSECPP_SHARED_API System::Collections::Specialized::StringCollection::~StringCollection ( )
overrideprotected

Destructor.

Member Function Documentation

◆ Add()

ASPOSECPP_SHARED_API int System::Collections::Specialized::StringCollection::Add ( const System::String value)

Adds value to the end of the list.

Parameters
valueString to add.
Returns
Index of inserted element.

◆ AddRange()

ASPOSECPP_SHARED_API void System::Collections::Specialized::StringCollection::AddRange ( const ArrayPtr< System::String > &  range)

Add elements into container.

Parameters
rangeContainer of elements to insert.

◆ begin() [1/2]

ASPOSECPP_SHARED_API iterator System::Collections::Specialized::StringCollection::begin ( )
noexcept

Returns an iterator to the first element of the container. If the container is empty, the returned iterator will be equal to end().

Returns
An iterator pointing to the first element of the container.

◆ begin() [2/2]

ASPOSECPP_SHARED_API const_iterator System::Collections::Specialized::StringCollection::begin ( ) const
noexcept

Returns an iterator to the first element of the const-qualified container. If the container is empty, the returned iterator will be equal to end().

Returns
An iterator pointing to the first element of the const-qualified container.

◆ cbegin()

ASPOSECPP_SHARED_API const_iterator System::Collections::Specialized::StringCollection::cbegin ( ) const
noexcept

Returns an iterator to the first const-qualified element of the container. If the container is empty, the returned iterator will be equal to cend().

Returns
An iterator pointing to the first const-qualified element of the container.

◆ cend()

ASPOSECPP_SHARED_API const_iterator System::Collections::Specialized::StringCollection::cend ( ) const
noexcept

Returns an iterator to the element following the last element of the container. This element acts as a placeholder; attempting to access it results in undefined behavior.

Returns
An iterator pointing to the theoretical const-qualified element placed after the last element of the container.

◆ Clear()

ASPOSECPP_SHARED_API void System::Collections::Specialized::StringCollection::Clear ( )

Deletes all elements.

◆ Contains()

ASPOSECPP_SHARED_API bool System::Collections::Specialized::StringCollection::Contains ( const System::String value) const

Checks whether specific string is present in container.

Parameters
valueString to look for.
Returns
True if string is found, false otherwise.

◆ CopyTo()

ASPOSECPP_SHARED_API void System::Collections::Specialized::StringCollection::CopyTo ( const ArrayPtr< System::String > &  arr,
const int32_t  index 
) const

Copy elements to existing arra elements.

Parameters
arrArray to copy data to.
indexIndex in destination array to start data copying at.

◆ crbegin()

ASPOSECPP_SHARED_API const_reverse_iterator System::Collections::Specialized::StringCollection::crbegin ( ) const
noexcept

Returns a reverse iterator to the first element of the reversed container. It corresponds to the last element of the non-reversed container. If the container is empty, the returned iterator is equal to crend().

Returns
An iterator pointing to the last const-qualified element of the container.

◆ crend()

ASPOSECPP_SHARED_API const_reverse_iterator System::Collections::Specialized::StringCollection::crend ( ) const
noexcept

Returns a reverse iterator to the element following the last element of the reversed container. It corresponds to the element preceding the first element of the non-reversed container. This element acts as a placeholder, attempting to access it results in undefined behavior.

Returns
An iterator pointing to the theoretical const-qualified element preceding the first element of the container.

◆ data() [1/2]

ASPOSECPP_SHARED_API std::vector<System::String>& System::Collections::Specialized::StringCollection::data ( )

Internal data structure accessor.

Returns
Reference to internal data structure.

◆ data() [2/2]

ASPOSECPP_SHARED_API const std::vector<System::String>& System::Collections::Specialized::StringCollection::data ( ) const

Internal data structure accessor.

Returns
Const reference to internal data structure.

◆ end() [1/2]

ASPOSECPP_SHARED_API iterator System::Collections::Specialized::StringCollection::end ( )
noexcept

Returns an iterator to the element following the last element of the container. This element acts as a placeholder; attempting to access it results in undefined behavior.

Returns
An iterator pointing to the theoretical element placed after the last element of the container.

◆ end() [2/2]

ASPOSECPP_SHARED_API const_iterator System::Collections::Specialized::StringCollection::end ( ) const
noexcept

Returns an iterator to the element following the last element of the const-qualified container. This element acts as a placeholder; attempting to access it results in undefined behavior.

Returns
An iterator pointing to the theoretical element placed after the last element of the const-qualified container.

◆ get_Count()

ASPOSECPP_SHARED_API int System::Collections::Specialized::StringCollection::get_Count ( ) const

Gets number of elements in collection.

Returns
Actual element count.

◆ GetEnumerator()

SharedPtr<Generic::IEnumerator<System::String> > System::Collections::Specialized::StringCollection::GetEnumerator ( )
inlineoverridevirtual

Gets enumerator iterating through current collection.

Returns
Newly created enumerator iterating through current collection.

Implements System::Collections::Generic::IEnumerable< System::String >.

◆ idx_get()

ASPOSECPP_SHARED_API System::String System::Collections::Specialized::StringCollection::idx_get ( int  index) const

Gets value at specified position.

Parameters
indexIndex to get string from.
Returns
String at specified position.

◆ idx_set()

ASPOSECPP_SHARED_API void System::Collections::Specialized::StringCollection::idx_set ( int  index,
const System::String value 
)

Sets value at specified position.

Parameters
indexIndex to set string at.
valueString value to set at specified index.

◆ IndexOf()

ASPOSECPP_SHARED_API int System::Collections::Specialized::StringCollection::IndexOf ( const System::String value) const

Looks for specific string in container.

Parameters
valueString to look for.
Returns
Index of first occurrence of specified string or -1 if not found.

◆ Insert()

ASPOSECPP_SHARED_API void System::Collections::Specialized::StringCollection::Insert ( int  index,
const System::String value 
)

Inserts specific value into container.

Parameters
indexIndex to insert string into.
valueValue to insert into specified position.

◆ operator[]()

ASPOSECPP_SHARED_API System::String& System::Collections::Specialized::StringCollection::operator[] ( int  index)

Accessor function.

Parameters
indexIndex to get element at.
Returns
Reference to string at specified position, either existing or newly created.

◆ rbegin() [1/2]

ASPOSECPP_SHARED_API reverse_iterator System::Collections::Specialized::StringCollection::rbegin ( )
noexcept

Returns a reverse iterator to the first element of the reversed container. It corresponds to the last element of the non-reversed container. If the container is empty, the returned iterator is equal to rend().

Returns
An iterator pointing to the last element of the container.

◆ rbegin() [2/2]

ASPOSECPP_SHARED_API const_reverse_iterator System::Collections::Specialized::StringCollection::rbegin ( ) const
noexcept

Returns a reverse iterator to the first element of the reversed container. It corresponds to the last element of the non-reversed container. If the container is empty, the returned iterator is equal to rend().

Returns
An iterator pointing to the last element of the const-qualified container.

◆ Remove()

ASPOSECPP_SHARED_API void System::Collections::Specialized::StringCollection::Remove ( const System::String value)

Removes first occurrence of specified string.

Parameters
valueString to remove.

◆ RemoveAt()

ASPOSECPP_SHARED_API void System::Collections::Specialized::StringCollection::RemoveAt ( int  index)

Removes element at specified position.

Parameters
indexIndex to remove element at.

◆ rend() [1/2]

ASPOSECPP_SHARED_API reverse_iterator System::Collections::Specialized::StringCollection::rend ( )
noexcept

Returns a reverse iterator to the element following the last element of the reversed container. It corresponds to the element preceding the first element of the non-reversed container. This element acts as a placeholder, attempting to access it results in undefined behavior.

Returns
An iterator pointing to the theoretical element preceding the first element of the container.

◆ rend() [2/2]

ASPOSECPP_SHARED_API const_reverse_iterator System::Collections::Specialized::StringCollection::rend ( ) const
noexcept

Returns a reverse iterator to the element following the last element of the reversed container. It corresponds to the element preceding the first element of the non-reversed container. This element acts as a placeholder, attempting to access it results in undefined behavior.

Returns
An iterator pointing to the theoretical element preceding the first element of the const-qualified container.

◆ virtualizeBeginConstIterator()

ASPOSECPP_SHARED_API System::Details::VirtualizedIteratorBase<System::String>* System::Collections::Specialized::StringCollection::virtualizeBeginConstIterator ( ) const
overridevirtual

Gets the implementation of begin const iterator for the current container.

Returns
Pointer to the newly created iterator kernel object.

Reimplemented from System::Collections::Generic::IEnumerable< System::String >.

◆ virtualizeBeginIterator()

ASPOSECPP_SHARED_API System::Details::VirtualizedIteratorBase<System::String>* System::Collections::Specialized::StringCollection::virtualizeBeginIterator ( )
overridevirtual

Gets the implementation of begin iterator for the current container.

Returns
Pointer to the newly created iterator kernel object.

Reimplemented from System::Collections::Generic::IEnumerable< System::String >.

◆ virtualizeEndConstIterator()

ASPOSECPP_SHARED_API System::Details::VirtualizedIteratorBase<System::String>* System::Collections::Specialized::StringCollection::virtualizeEndConstIterator ( ) const
overridevirtual

Gets the implementation of end const iterator for the current container.

Returns
Pointer to the newly created iterator kernel object.

Reimplemented from System::Collections::Generic::IEnumerable< System::String >.

◆ virtualizeEndIterator()

ASPOSECPP_SHARED_API System::Details::VirtualizedIteratorBase<System::String>* System::Collections::Specialized::StringCollection::virtualizeEndIterator ( )
overridevirtual

Gets the implementation of end iterator for the current container.

Returns
Pointer to the newly created iterator kernel object.

Reimplemented from System::Collections::Generic::IEnumerable< System::String >.

Member Data Documentation

◆ m_data

std::vector<System::String> System::Collections::Specialized::StringCollection::m_data
protected

Internal data structure.